Учусь писать советника... - страница 2

 
Figar0 >>:

...для новичка-непрограммиста может иметь значение...

)) Это для меня громко сказанно! Я на форексе всего 2,5 года.. За все это время зарабатывал 2 раза: 1-й раз на дэмо (увеличил дэпо в 50 раз), 2-й раз на реале (результат на много скромнее)

Но вывод из всего этого сделал один - нет дисциплины! Поэтому и решил пробовать написать что-то, чтоб от моих эмоций не зависеть)

 
rid >>:

А чтобы вы быстрее сообразили - прогоните сначала ваш эксперт по ВСЕМ ТИКАМ и результат сюда, пож.

Тест и так проходил по всем тикам! На рисунках это видно..

 

Вот в этом коде я что-то намудрил похоже...

void ClosePos()
   {
      double pp;

        if (OrderType()==OP_BUY)
          {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
          }
        if (OrderType()==OP_SELL)
          {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
          }
   }


В логе постоянно пишет ошибку.. 

invalid ticket for OrderClose function
OrderClose error 4051
OrderSend error 130

Эта проверка на закрытие идет до противоположного сигнала на вход

если сигнал на бай 

(OrderType()==OP_BUY)
то закрываем текущий селл

 

OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue)

И наоборот..

Но весь журнал заполняет ошибка.. 

Похоже на каждом тике пытается закрыться.. но нет условий..



 
А где OrderSelect?
 
Не знаю) Я поэтому тут... чтоб всё правильно сделать..
 
sergeev >>:
А где OrderSelect?

Прочитал про эту функцию.. переделал на этот вариант:

void ClosePos()
   {
      double pp;
        if (OrderSelect(0,SELECT_BY_POS)==true) // Если есть открытый ордер
            { 
               if (OrderType()==OP_BUY)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_BID);
                  OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue);
                  }
               if (OrderType()==OP_SELL)
                  {
                  pp=MarketInfo(OrderSymbol(), MODE_ASK);
                  OrderClose(OrderTicket(), OrderLots(), Ask, 0, Red);
                  }
            }      
   }
 

мне бы понравилось, если бы не качество моделирования

 
А от чего оно зависит?
 

поищи в поиске, нужно загрузить и пересчитать историю

 
ALex2008 писал(а) >>
А от чего оно зависит?

Скачайте минутные свечки (напимер с альпари) и делайте тест на минутках.

Тестить на 4-часовиках стоп в 5 пунктов- нельзя.

Причина обращения: