Здравствуйте.
Помогите решить проблему
Стоплевел равен 0,0.
Я так понял ошибка возникает т.к. близко к цене отложка, а не из за стопов?
Тогда как же узнать этот уровень?
Альпари? Если да, то у них стоплевел равен нулю, но вместо него используется двойной спред. Делайте так:
//--- level=(int)MarketInfo(symbol,MODE_STOPLEVEL); if(level==0) level=(int)MarketInfo(symbol,MODE_SPREAD)*2; //---
Теперь ВСЁ прописывайте через MarketInfo и NormalizeDouble т.е. еще добавте MarketInfo(tool,MODE_POINT), где tool ваша валютная пара пара и стоп лосс в конечном итоге должен выглядеть вот так
NormalizeDouble (Ask-dif* MarketInfo(tool,MODE_POINT),Digits);
Спасибо большое. Да, альпари нестандартно подошел к этому вопросу)
void Start() { level=MarketInfo(Symbol(),MODE_STOPLEVEL); if(level==0) level=MarketInfo(Symbol(),MODE_SPREAD)*2; Alert(level); ticket = OrderSend(Symbol(),OP_SELLSTOP,NormalizeDouble(Lot,2),NormalizeDouble(Bid-(level)*Point(),5),5,0,0,""); if (ticket<0) Alert("Ошибка постановки 1 ордера ", GetLastError()); return;
Проблема решена
Уважаемый artmedia70!!
А я вот столкнулся с проблемой ещё хуже.
Советник отказывается (та же 130я) открывать позиции! Из журнала:
2014.03.04 16:43:58 '9462147': order sell 1.00 EURUSD opening at 0.00000 sl: 1.38192 tp: 1.37298 failed [Invalid S/L or T/P]
По Вашей рекомендации прикрутил level=...и т.д. Ноль реакции! (Кстати, на Евре через принт пишет level=12)
Может тогда и СЛ и ТП тоже по такому алгоритму считать? Через NormalizeDouble (Ask-dif*... Но стопы же он вроде считает правильно (см. из журнала).
Кроме того, я что-то не въезжаю. MODE_STOPLEVEL вроде как double. Почему у Вас int?
Уважаемый artmedia70!!
А я вот столкнулся с проблемой ещё хуже.
Советник отказывается (та же 130я) открывать позиции! Из журнала:
2014.03.04 16:43:58 '9462147': order sell 1.00 EURUSD opening at 0.00000 sl: 1.38192 tp: 1.37298 failed [Invalid S/L or T/P]
По Вашей рекомендации прикрутил level=...и т.д. Ноль реакции! (Кстати, на Евре через принт пишет level=12)
Может тогда и СЛ и ТП тоже по такому алгоритму считать? Через NormalizeDouble (Ask-dif*... Но стопы же он вроде считает правильно (см. из журнала).
Кроме того, я что-то не въезжаю. MODE_STOPLEVEL вроде как double. Почему у Вас int?
стопы только модификатором ставить, не надо пытаться ставить их при открытии позиции, выше ведь обьясняли уже. А стоплевел всегда целочисленный, как количество пипсов может быть дробным? Вот сама функция MarketInfo - double, это да.
SYMBOL_TRADE_STOPS_LEVEL |
Минимальный отступ в пунктах от текущей цены закрытия для установки Stop ордеров |
int |
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Помогите решить проблему
Стоплевел равен 0,0.
Я так понял ошибка возникает т.к. близко к цене отложка, а не из за стопов?
Тогда как же узнать этот уровень?