1 проблема- перенос стоп-лосса каждую минуту проводится не по закрытым минутных свечам на 1 пипс,а через минуту и по времени не совпадающему с iClose
минутных свеч, в чем приична? Код блока:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 11.09.2008 |//| Описание : Сопровождение позиций синхронным тралом |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ( "" - любой символ, |//| NULL - текущий символ) |//| op - операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+void SynchroTrailing(string sy="", int op=-1, int mn=-1) { //1double po, pp;
int i, k=OrdersTotal();
double prev=iClose(sy,PERIOD_M1,2);
double last=iClose(sy,PERIOD_M1,1);
if (sy==NULL) sy=Symbol();
for (i=0; i<k; i++) { //2if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { //3if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { //4
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (mn<0 || OrderMagicNumber()==mn)
{ //5if (OrderType()==OP_BUY)
{ //6
pp=MarketInfo(OrderSymbol(), MODE_BID);
if ((last>prev) || (last>prev))
{ //7
ModifyOrder(-1,OrderStopLoss()+(1*po),-1);
} //7
} //6
} //5-1//------------------------------------------------------------------------------if (OrderType()==OP_SELL)
{ //8
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if ((last<prev) || (last>prev))
{ //9
ModifyOrder(-1,OrderStopLoss()-(1*po),-1);
} //9
} //8//}//5-2
}
}
}
Sleep(60*1000); //60 sekund
}
//+---------------------------------------------------------------------------------------------------------------------+
Второй блок трала : проблема в том, что заданы 3 ступени переноса в безубыток при достижении этих показателей:
//----------------------------------------------------------------------------------------------------externint Stoploss = 0, //стоплосс
Takeprofit = 3000, //тейкпрофит
NoLoss1 = 200, //перевод в безубыток, если 0, то нет перевода в безубыток
MinProfitNoLoss1 = 55, //минимальная прибыль при переводе в безубыток
NoLoss2 = 400, //перевод в безубыток, если 0, то нет перевода в безубыток
MinProfitNoLoss2 = 95, //минимальная прибыль при переводе в безубыток
NoLoss3 = 600, //перевод в безубыток, если 0, то нет перевода в безубыток
MinProfitNoLoss3 = 155; //минимальная прибыль при переводе в безубыток
но перенос не происходит почему-то, вот второй трал:
1. Время закрытия неизвестно и не может быть известным. Действия выполняются на открытии бара, а открытие не обязано происходить точно в
указанное время бара.
2. Используйте средства отладки и смотрите, что не так и почему оно не так.
Добрый день!
У меня действуют одновременно 2 траловых функции:
1 проблема- перенос стоп-лосса каждую минуту проводится не по закрытым минутных свечам на 1 пипс,а через минуту и по времени не совпадающему с iClose
минутных свеч, в чем приична? Код блока:
Второй блок трала : проблема в том, что заданы 3 ступени переноса в безубыток при достижении этих показателей:
но перенос не происходит почему-то, вот второй трал:
В общем по 2 тралам нужно,чтобы стоп двигался по 1 пипсу при закрытии каждую минуту,и
ступенчато переходил в безубыток при достижении заданных параметров и продолжал двигаться по 1 пипсу.
Кто-то может подсказать как исправить мои ошибки?