у брокера исполнение по рынку, какая цена была на момент запроса, ту он дал
по экспирации, на фортс экспирация допустима только в режиме до конца дня
request.action=TRADE_ACTION_PENDING; request.symbol=_Symbol; request.volume=Lots; request.price=price; request.sl=0.0; request.tp=0.0; request.deviation=0; request.type=type; request.type_filling=ORDER_FILLING_RETURN; request.type_time=ORDER_TIME_DAY;
ВЫДАЕТ ОШИБКУ - [Invalid expiration]
И ни какие "пляски" с type_filling и с expiration не помогли.
В чем проблема ?
По поводу истечения сталкивался с тем, что у разных брокеров этот параметр может реализовываться по разному, например, (для форекс) на сервере MetaQuotes-Demo все работало, т.е. истечение корректно исполнялось, а на сервере ДЦ - нет. Писал заявку в сервисдеск №1121148 почему так в декабре прошлого года - до сих пор молчат. По поводу отклонения от цены - пробовали ставить значение отличное от 0?
Да, все пробовал - не помогает.... (
Тоже попробую в сервисдеск написать. . Но вряд ли помогут - они потехнической части в основном.
А для чего тогда deviation ?
по экспирации, на фортс экспирация допустима только в режиме до конца дня
Тоже пробовал - не помогает(
возьмите брокера по проще, там меньше ограничений
Опа! На демо рынок закрыт!( Вечерка фортс не торгуется на демо, видимо. .. Завтра продолжу.
Опа! На демо рынок закрыт!( Вечерка фортс не торгуется на демо, видимо. .. Завтра продолжу.
Добрый вечер!
Установка рыночного или лимитного ордера ( есть цена - лимитный, нет - рыночный ):
void SetMLOrder( const string a_symbol, const ulong magic, ulong &ticket, const double price, const double volume, const bool buy_sell ) { MqlTradeRequest request = {0}; MqlTradeResult result = {0}; ticket = 0; //--- Fill structure request.magic = magic; request.symbol = a_symbol; request.volume = volume; request.type_filling = ORDER_FILLING_IOC; request.type_time = ORDER_TIME_DAY; if ( price == 0 ) { request.action = TRADE_ACTION_DEAL; request.comment = "Рыночный ордер..."; //--- if ( buy_sell ) { request.type = ORDER_TYPE_BUY; } else { request.type = ORDER_TYPE_SELL; } } else { request.action = TRADE_ACTION_PENDING; request.price = price; request.comment = "Лимитный ордер..."; //--- if (buy_sell) { request.type = ORDER_TYPE_BUY_LIMIT; } else { request.type = ORDER_TYPE_SELL_LIMIT; } } //--- Send order if ( OrderSend( request, result ) ) { if ( result.retcode == TRADE_RETCODE_PLACED ) { ticket = result.order; } } else { Print( "Установка ордера не выполнена! ", a_symbol ); } }
//+------------------------------------------------------------------+ //| Place order | //+------------------------------------------------------------------+ void PlaceOrder( const string a_symbol, const ulong magic, ulong &ticket, const double price, const double volume, const bool buy_sell ) { MqlTradeRequest request = {0}; MqlTradeResult result = {0}; ticket = 0; //--- Fill structure request.action = TRADE_ACTION_PENDING; request.magic = magic; request.symbol = a_symbol; request.volume = volume; request.price = price; if ( buy_sell ) { request.type = ORDER_TYPE_BUY_LIMIT; } else { request.type = ORDER_TYPE_SELL_LIMIT; } request.comment = "Отложенный ордер..."; request.type_filling = ORDER_FILLING_RETURN; request.type_time = ORDER_TIME_DAY; //--- Send order if ( OrderSend( request, result ) ) { if ( result.retcode == TRADE_RETCODE_PLACED ) { ticket = result.order; } } else { Print( "Ордер не установлен! ", a_symbol ); } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал пару ботов на TsLab API. Ругаясь, матерясь на документацию.. но в итоге все получилось.
Решил вплотную заняться MQL5. Потрясающая документация с примерами! Все достаточно подробно и доступно изложено! Просто рай!
Написал несколько индикаторов, поработал с графикой. Все на высшем уровне!
Добрался до торговых функций. По документации все вроде бы понятно... Но !!! Почему то оно все не работает как положено!!
Проверяю работу торговых функций на ФОРТС Открытие-демо.
Пример - простой скрипт по входу в позицию . Проверка работы deviation
deviation
Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах
Рыночный ордер в моем случае должен быть отклонен тк отклонение от цены целых 100 пунктов!!! (SymbolInfoDouble(_Symbol,SYMBOL_ASK)-100*_Point;),при request.deviation=0; !
Но он исполняется! Почему ? Что не так?????
Далее. Проверяю работу отложенных ордеров. Скрипт.
ВЫДАЕТ ОШИБКУ - [Invalid expiration]
И ни какие "пляски" с type_filling и с expiration не помогли.
В чем проблема ?