Ребят, подскажите, пожалуйста.
имеется условие: if (Profit<0) {мартинимся} else {лот - начальный}
как вместо проверки прибыли корректно оформить условие "последний ордер закрылся по SL"?
Дело в том что по-моему сравнивать OrderClosePrise() и OrderStopLoss() напрямую нельзя(вроде a==b, хотя в "тостере" ,наверное, так и работает), ведь закрытие проскальзывает и не происходит прям на месте выставленного SL.
А тут еще и вопрос как правильно отобрать эти "закритие" и "лосс"?
Вот как это происходит у меня:
потом появляется искушение сделать так:
и дальше:
но потом за SL следует не увеличенный лот, а начальный... что не так?
имеется условие: if (Profit<0) {мартинимся} else {лот - начальный}
как вместо проверки прибыли корректно оформить условие "последний ордер закрылся по SL"?
Дело в том что по-моему сравнивать OrderClosePrise() и OrderStopLoss() напрямую нельзя(вроде a==b, хотя в "тостере" ,наверное, так и работает), ведь закрытие проскальзывает и не происходит прям на месте выставленного SL.
А тут еще и вопрос как правильно отобрать эти "закритие" и "лосс"?
Вот как это происходит у меня:
PHP:
int Magic=0, CloseTime=0;
double ocp=0.0, osl=0.0;
for(int j=0;j<OrdersHistoryTotal();j++)
{
if(!OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) continue;
if(OrderMagicNumber()!=Magic) continue;
if(closetime<OrderCloseTime())
{
CloseTime=(int)OrderCloseTime();
ocp=NormalizeDouble(OrderClosePrice(),Digits);
osl=NormalizeDouble(OrderStopLoss(),Digits);
}
}
потом появляется искушение сделать так:
PHP:
int Result=0;
if (ocp==osl) Result=1;
и дальше:
PHP:
if (Result==1)
{Loss++; if (Loss>=NumberLoss) {LOT=NormalizeDouble(Lot*K, 2); Loss=0;}}
else
{Loss=0; LOT=LotStart; }
но потом за SL следует не увеличенный лот, а начальный... что не так?