Скачать MetaTrader 5

Не понятно, помогите

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Denis Timoshin
2251
Denis Timoshin 2010.05.06 23:34 

Проблема следующего характера, открываю позиции по текущим ценам рынка без указаний sl и tp. во вкладке эксперты пишет TRADE_RETCODE_INVALID_STOPS в журнале пишет  Trades '83907' : failed instant sell 0.10 EURJPY at 0.000 [Invalid stops]

сам код:

MqlTradeRequest request;
request.action=TRADE_ACTION_DEAL; // установка рыночного ордера
request.symbol=instr; // инструмент
request.volume=volume; // объем в 0.1 лот
request.price=price; // цена
// request.sl=0; // Stop Loss не указан
// request.tp=0; // Take Profit не указан
//--- сформируем тип ордера
request.type=ordertype; // тип ордера
request.deviation =500;
request.type_filling=ORDER_FILLING_AON;

В чем дело?
 

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
Вадим
707
Вадим 2010.05.07 01:00  

Попробуйте так:

//======================================================================================================
   request.action=TRADE_ACTION_DEAL;          // Тип выполняемого действия
   request.magic=58000;                       // Штамп эксперта (идентификатор magic number)
   request.order=0;                           // Тикет ордера
   request.symbol=Symbol();                   // Имя торгового инструмента
   request.volume=0.1;                        // Запрашиваемый объем сделки в лотах
   request.price=SymbolInfoDouble(Symbol(),SYMBOL_ASK);// Цена
   request.stoplimit=0;                       // Уровень StopLimit ордера
   request.sl=0;                              // Уровень Stop Loss ордера
   request.tp=0;                              // Уровень Take Profit ордера
   request.deviation=500;                     // Максимально приемлемое отклонение от запрашиваемой цены
   request.type=ORDER_TYPE_BUY;               // Тип ордера
   request.type_filling=ORDER_FILLING_AON;    // Тип ордера по исполнению
   request.type_time=ORDER_TIME_GTC;          // Тип ордера по времени действия
   request.expiration=0;                      // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
   request.comment="First";                   // Комментарий к ордеру
//========================================================================================================

У меня так всё работает.

Надеюсь в курсе что позицию открывают командой:

bool successB=OrderSend(request,result);

 

 

Denis Timoshin
2251
Denis Timoshin 2010.05.07 10:04  
Rinng:

Попробуйте так:

У меня так всё работает.

Надеюсь в курсе что позицию открывают командой:

 

 

Попробывал как у вас, все равно не получаеться! не открывает пару по цене, после определенного времени открывает
Файлы:
c2w488.mq5 9 kb
Вадим
707
Вадим 2010.05.07 13:59  
dentraf:
Попробывал как у вас, все равно не получаеться! не открывает пару по цене, после определенного времени открывает
Дак у Вас есть условия на открытие позиций, позиции открываются только при выполнениии этих условий.
zabello_da
4
zabello_da 2010.05.07 15:23  

создвл эксперт, сохранил в нужном каталоге, но в терминале не могу его увидеть, только стандартные примеры. терминал работает под windows 7 ultimate. что делаю не так?!

Denis Timoshin
2251
Denis Timoshin 2010.05.07 15:25  
Rinng:
Дак у Вас есть условия на открытие позиций, позиции открываются только при выполнениии этих условий.
Да есть условие на открытие пачки ордеров (9), из этой пачки открываются все нормально кроме GBPJPY и EURJPY, они тормозят и выкидываю ошибки, но со времнем открываються все равно. Вот и вопрос что не так почему они тормозят? 
Denis Timoshin
2251
Denis Timoshin 2010.05.07 15:27  
zabello_da:

создвл эксперт, сохранил в нужном каталоге, но в терминале не могу его увидеть, только стандартные примеры. терминал работает под windows 7 ultimate. что делаю не так?!

откомпелируйте его
Dmitry Voronkov
5812
Dmitry Voronkov 2010.05.07 15:46  

Народ пользуйтесь стандартным классом 

 

СTrade

#include <Trade\Trade.mqh>

CTrade trade;

         trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,Lot,SymbolInfoDouble(_Symbol,SYMBOL_ASK),stop, profit);
         trade.PositionModify(_Symbol,NormalizeDouble(stop,profit);

Зачем усложнять себе жизнь. В фаейле Trade.mqh можно посмотреть описание всех фукций и как с ними правильно работать.

Файлы есперта (для windows 7) необходимо положить в папку C:\Users\Имя пользователя\AppData\Roaming\MetaQuotes\Terminal\D85061110A1E93F2393E16A4A6C64EDC\MQL5\Experts

Выделеное красным у тебя может отличатся, в проводнике укажи бидеть скрытые папки.

Denis Timoshin
2251
Denis Timoshin 2010.05.07 15:53  
vdv2001:

Народ пользуйтесь стандартным классом 

 

СTrade

Зачем усложнять себе жизнь. В фаейле Trade.mqh можно посмотреть описание всех фукций и как с ними правильно работать.

Файлы есперта (для windows 7) необходимо положить в папку C:\Users\Имя пользователя\AppData\Roaming\MetaQuotes\Terminal\D85061110A1E93F2393E16A4A6C64EDC\MQL5\Experts

Выделеное красным у тебя может отличатся, в проводнике укажи бидеть скрытые папки.

Спасибо подсказали, попробую
zabello_da
4
zabello_da 2010.05.07 20:39  
dentraf:
откомпелируйте его
Спасибо. Откомпилировал, не помогло. Дело в какой то мелочи, но не пойму в какой!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий