Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Stanislav Lobanov
555
Stanislav Lobanov  

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

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

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
Модератор
24758
o_o  
trump:

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

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

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

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

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

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

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

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

Sell by market и Buy by market

у MQ просто Sell и Buy

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

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


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

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

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

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


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