Скачать MetaTrader 5

ORDER_TYPE_BUY. Открывает, а стопы не ставит! Почему? Билд 574

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Начни зарабатывать!
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 15:42 

Торгует, стопы и профиты получает, ордера открывает, но без стопов и профитов.

Входные параметры такие:

Trade.Send(Symbol(), ORDER_TYPE_SELL, 0.2, SymbolInfoDouble(Symbol(),SYMBOL_BID), SymbolInfoDouble(Symbol(),SYMBOL_BID) + 20*k*_Point, SymbolInfoDouble(Symbol(),SYMBOL_BID) - 20*k*_Point, 20111111, "SMAS-Expert", TRADE_ACTION_DEAL);

 

Trades::Send(string vPair, ENUM_ORDER_TYPE type, double volume, double price, double stoploss, double takeprofit, ulong magic, string comment, ENUM_TRADE_REQUEST_ACTIONS action)
{
   volume = SymbolInfoDouble(vPair, SYMBOL_VOLUME_MIN) > volume ? SymbolInfoDouble(vPair, SYMBOL_VOLUME_MIN):volume;
   request.action       = action;
   request.symbol       = vPair;
   request.magic        = magic;
   request.volume       = volume;
   request.type         = type;
   request.price        = NormalizeDouble(price, _Digits);
   request.sl           = NormalizeDouble(stoploss, _Digits);
   request.tp           = NormalizeDouble(takeprofit, _Digits);
   request.deviation    = 3;
   request.type_filling = ORDER_FILLING_AON;
   request.comment      = comment;
   Print(" ---- ",request.tp);
   bool success = OrderSend(request,result);
o_o
Модератор
23694
o_o 2012.01.21 15:44  
trump:

Торгует, стопы и профиты получает, ордера открывает, но без стопов и профитов.

Входные параметры такие:

а выходные какие?
220Volt
1175
220Volt 2012.01.21 15:49  
Уточните какое исполнение у вашего дц (instant, market)
genprog
97
genprog 2012.01.21 15:50  
Зависит от брокера. Некоторые требуют открытия ордера в два этапа. Сначала нужно открыть ордер без тейк профита и стоп лосса. После этого нужно программно выставить тейк профит и стоп лосс.
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 16:19  
TRADE_ACTION_DEAL
Тестирую на Alpari
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 16:28  
220Volt:
Уточните какое исполнение у вашего дц (instant, market)
Как вычислить программно. Вроде все три типа 
Nikolay Demko
12464
Nikolay Demko 2012.01.21 16:33  
trump:
Тестирую на Alpari

У Альпари исполнение по рынку "market execution" что означает что стоп уровни выставляются уже на существующую позицию.

Так что придётся вам досылать приказы на установку стопов, уже после контроля открытия позиции, отдельным приказом.

Для этого есть специальный тип

TRADE_ACTION_SLTP
trump:
Как вычислить программно. Вроде все три типа 

програмно не скажу, а убедится можно открыв окно установки ордера, там нет полей установки стопов, и на кнопках приказов написано

Sell by market и Buy by market

у MQ просто Sell и Buy

220Volt
1175
220Volt 2012.01.21 16:34  
trump:
Как вычислить программно. Вроде все три типа 
SymbolInfoInteger()  - SYMBOL_TRADE_EXEMODE
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 16:35  
Встроеный эксперт имеет похожую структуру кода (MovingAverage). Поправил его со стопами

sergeev:
а выходные какие? 


Ошибки в смысле? Ошибок нет!
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 16:37  
Urain:

У Альпари исполнение по рынку "market execution" что означает что стоп уровни выставляются уже на существующую позицию.

Так что придётся вам досылать приказы на установку стопов, уже после контроля открытия позиции, отдельным приказом.

Для этого есть специальный тип


Это я понял неудобно. А можно программно понять есть необходимость досылать или нет (конечно не просмотром открытых позиций сделок или ордеров по истории). Сам параметр исполнения можно вытащить программно?
Stanislav Lobanov
555
Stanislav Lobanov 2012.01.21 16:41  
220Volt:
SymbolInfoInteger()  - SYMBOL_TRADE_EXEMODE
Спасибо!
12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий