Форум » Синтаксис языка » Специфическая Математика и расчеты усреднений !!! » Ответить

Специфическая Математика и расчеты усреднений !!!

voldemar227: Вопрос есть бай лотом 0,01 и есть сел ордер который ниже бая, селл обьемом 0,03 как расчитать профит для села что бы обе позы закрылись в ноль ????

Ответов - 23, стр: 1 2 3 All

voldemar227: функция вызывается на каждом тике и должна усреднить два ордера по двум тикетам int usr (string t, int x, int m1, int m2) { double nn=0,bb=0; int i=0; if ( t=="" ) t=Symbol(); for(i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol()==t) if(OrderType()==x)//&&(OrderTicket()==m1||OrderTicket()==m2||m1==-1&&m2==-1)) {Comment(t); bb+=OrderOpenPrice()*OrderLots(); nn+=OrderLots() ; } for(i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol()==t) if(OrderType()==x)//&&(OrderTicket()==m1||OrderTicket()==m2||m1==-1&&m2==-1)) { if (OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(bb/nn,Digits),0,Gold)==true) return(0);else return (GetLastError()); } } но почему то усредняется только один ... даже при отключеной проверке на тикеты модифицируется только один ордер . В чем проблема понять не могу ....

Scriptong: voldemar227 пишет: но почему то усредняется только один Потому что после проведения первой же модификации, независимо от успешности операции, происходит выход из функции. Функция возвращает либо 0, либо код ошибки после операции модификации.

voldemar227: Scriptong пишет: X = ((sellPrice - spread)*sellVolume - buyPrice*buyVolume)/(sellVolume - buyVolume) то есть правильно ли я понял Мы цену каждого ордера по типу бай умножаем на его лот и суммируем в заданной переменной Так же мы цену каждого ордера по типу селл умножаем на его лот и суммируем в заданной переменной затем производим вычитание , Не могу понять почему мы делаем вычитание ??? И почему мы от селл лотов вычитаем бай лоты ???




полная версия страницы