Помогите, кто знает!
- Помогите. Не открываются сделки на демо, кто знает почему
- Скажите, а можно в МТ4 или в МТ5 напрямую передавать сигналы из внешних приложений?
- [Архив]учитесь зарабатывать селяне![Архив]
В функции модификации не изменяется цена:
if(OrderOpenPrice()-Ask>Point*TralingOrders) { Alert(GetLastError()); OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TralingOrders,OrderTakeProfit(),OrderExpiration(),Red); Alert(GetLastError()); }
Здесь лучше делать continue:
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
И еще - не советую выбирать ордера OrderSelect'ом каждый раз, ваш главный цикл может работать не верно из-за этого.
Выбирать нужно в главном цикле, а в остальные функции просто передавать уже готовые параметры, например:
void TralOrderOtl( int ticket, int type, double op, double sl, double tp, datetime exp )
То есть внутри функции делать переинициализацию не имеет смысла, все нужные значения можно просто получить в виде формальных параметров.
Далее, что это за условия?
if(OrderOpenPrice()-Ask>2*Point*TralingOrders)
Это Аск должен быть выше цены на 2*TralingOrders пунктов, чтобы цена начала двигаться, а не цена открытия выше Аска. Пересмотрите внимательно условия исполнения модификаций.
if ( Ask - op - 2*TralingOrders*Point > -Point/2.0 ) { ...modify... }