Цель такая: требуется привязать STOP LOSS к значению iSAR+-0.0001
ход моих действий был таков (привожу отрывки из моего "кода"):
extern double XXX = 0.0001;
extern double SAR_min_1;
extern double SAR_plus_1;
SAR_min_1 = SAR - XXX;
SAR_plus_1 = SAR + XXX;
// объявил..... затет выясняю где находится Ask по отношению к iSar и открываю позицию
if (Ask>(SAR_min_1))
{
Для начала. Корректней, видимо будет задавать вот так :
extern double XXX = 1*MODE_POINT // Размер пункта в валюте котировки. //Для текущего инструмента хранится в предопределенной переменной Point ;
Кроме того, вы уверены, что выставляемые изначально стопы в OrderSend находятся на допустимом расстоянии от текущей цены?
Согласно правилам ДЦ? Отсюда и может быть ошибка - "неправильные стопы"
нет. этот код еще на столько "сырой", что не дошёл до этого пункта. прям щас допишу у себя.
По остальным ошибкам помочь, к сож., не смогу.
Однако.
Модификация открытых позиций выполнена не совсем правильно, и вряд ли будет работать корректно.
Я бы рекомендовал вам изначально открыть позиции без стопов, а потом уже после открытия выставить стоплосс и тейкпрофит, используя функцию в адресе :
'Полезные функции от KimIV' - разберитесь, там есть примеры использования
Саму функцию ModifyOrder(). распологаете в самом конце кода (вне ф-и int start() )
Но это же явная бессмыслица !
Зачем вам во внешних параметрах эксперта задавать постоянную величину?
Тогда уж задавайте так:
extern double m=1 ; double XXX = m*MODE_POINT;
где m - кол-во задаваемых пунктов (в вашем примере m=1)
Но это же явная бессмыслица !
Зачем вам во внешних параметрах эксперта задавать постоянную величину?
Тогда уж задавайте так:
где m - кол-во задаваемых пунктов (в вашем примере m=1)
хорошо, я сделал так, компеляцию код проходит нормально, а терминал выдает 4107 - Неправильный параметр цены для торговой функции
чего-то видимо не хватает всетаки
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Прошу вас разрешить мою проблемку.
Цель такая: требуется привязать STOP LOSS к значению iSAR+-0.0001
ход моих действий был таков (привожу отрывки из моего "кода"):
extern double XXX = 0.0001;
extern double SAR_min_1;
extern double SAR_plus_1;
SAR_min_1 = SAR - XXX;
SAR_plus_1 = SAR + XXX;
// объявил..... затет выясняю где находится Ask по отношению к iSar и открываю позицию
if (Ask>(SAR_min_1))
{
ticket=OrderSend (Symbol(), OP_BUY, Lots, Ask, 0,SAR_min_1, 0, "SAR!", 123, 0, Green); // SAR_plus_1
Comment("_ticket=", ticket );
// в тоже время пытаюсь привязать STOP LOSS к значению iSAR+-0.0001
if(ticket>0)
{
// OrderModify
OrderModify(OrderTicket(), OrderOpenPrice(), SAR_min_1, 0, 0, Green); // SAR_plus_1
}
}
// и все в обратном направлении
else
{
if (Ask<(SAR_plus_1))
ticket=OrderSend (Symbol(), OP_SELL, Lots, Bid, 0, SAR_plus_1,0, "SAR", 123, 0, Green); // SAR_min_1Ask-point_1
Comment("_ticket=", ticket );
if(ticket>0)
{
OrderModify(OrderTicket(), OrderOpenPrice(), SAR_plus_1, 0, 0, Green);
Alert ("neli is ", GetLastError());
}
}
В итоге выдаются такие ошибки:
130 - Неправильные стопы
146 - Подсистема торговли занята
4051 - Недопустимое значение параметра функции
Подскажите, как подправить ход моей мысли.
Заранее спасибо!