Попробуйте так:
//======================================================================================================
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);
Попробуйте так:
У меня так всё работает.
Надеюсь в курсе что позицию открывают командой:
Попробывал как у вас, все равно не получаеться! не открывает пару по цене, после определенного времени открывает
создвл эксперт, сохранил в нужном каталоге, но в терминале не могу его увидеть, только стандартные примеры. терминал работает под windows 7 ultimate. что делаю не так?!
Дак у Вас есть условия на открытие позиций, позиции открываются только при выполнениии этих условий.
создвл эксперт, сохранил в нужном каталоге, но в терминале не могу его увидеть, только стандартные примеры. терминал работает под windows 7 ultimate. что делаю не так?!
Народ пользуйтесь стандартным классом
С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
Выделеное красным у тебя может отличатся, в проводнике укажи бидеть скрытые папки.
Народ пользуйтесь стандартным классом
СTrade
Зачем усложнять себе жизнь. В фаейле Trade.mqh можно посмотреть описание всех фукций и как с ними правильно работать.
Файлы есперта (для windows 7) необходимо положить в папку C:\Users\Имя пользователя\AppData\Roaming\MetaQuotes\Terminal\D85061110A1E93F2393E16A4A6C64EDC\MQL5\Experts
Выделеное красным у тебя может отличатся, в проводнике укажи бидеть скрытые папки.
откомпелируйте его

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Проблема следующего характера, открываю позиции по текущим ценам рынка без указаний 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;
В чем дело?