Откройте пример MACD.
Найдите функцию OrderSend
И разберитесь с ней + справку читаните, а то у вас совсем неправильно
в этом примере, который в самом MT5, не нашёл... (во всех остальных файлах тоже)...
в справке тоже примеров нет, только общее описание, на форуме все чего-то рисуют...
есть где-нибудь простой эксперт по выставлению ордеров?
в 4-ой версии как-то понятно всё было...
на сколько я знаю ордер выставляется в таком виде В. пара тип кол-во цена стоп\профит\время действия\время истечение\ if(m_trade.OrderOpen(Symbol(),ORDER_TYPE_BUY_STOP,lots,NULL,priceb,slb,tpb,ORDER_TIME_GTC,StringToTime(closetime)))
но в функцию "он тик" я бы это не пихал
но в функцию "он тик" я бы это не пихал
Спасибо, друг... Всё равно - не понятно...
Понятно одно - чайникам здесь не место... Вход только для продвинутых программно-ориентируемых художников...
Это скрипт.
открывает один ордер на покупку. + выводит в журнал всю информаци по результату.
void OnStart() { OpenBuy(); } void OpenBuy() { MqlTradeRequest m_request; // request data MqlTradeResult m_result; // result data m_request.action =TRADE_ACTION_DEAL; m_request.magic =101; m_request.symbol =Symbol(); m_request.volume =1; m_request.price =SymbolInfoDouble(Symbol(), SYMBOL_ASK); m_request.sl =0; m_request.tp =0; m_request.deviation =0; m_request.type =ORDER_TYPE_BUY; m_request.type_filling=ORDER_FILLING_AON; m_request.comment =""; //--- OrderSend(m_request, m_result); Print("ret "+m_result.retcode); Print("comm "+m_result.comment); Print("deal "+m_result.deal); Print("ask "+m_result.ask); Print("bid "+m_result.bid); Print("order "+m_result.order); Print("price "+m_result.price); Print("vol "+m_result.volume); }
Это скрипт.
открывает один ордер на покупку. + выводит в журнал всю информаци по результату.
Это скрипт.
открывает один ордер на покупку. + выводит в журнал всю информаци по результату.
С открытием позиции все понятно. А как грамотно закрыть или перевернуться? выложите пример пожалуйста или ссылочку дайте где это расписано)
MqlTradeRequest BigDogBuy; MqlTradeRequest BigDogSell; BigDogBuy.action=TRADE_ACTION_PENDING; // Устанавливаем отложенный ордер BigDogBuy.magic = MagicNumber; BigDogBuy.symbol=Symbol(); BigDogBuy.price=Higest; //Цена, по которой будет установлен ордер BigDogBuy.volume=Lots; BigDogBuy.sl=Lowest; //если стоп лосс не задан, то будем устанавливать по стратегии BigDogBuy.tp=Higest+TakeProfit*Point(); //устанавливаем тейк профит BigDogBuy.deviation=dev; //минимальное отклонение от запрошенной цены, //то есть, насколько цена исполенния может отличаться от заданной цены BigDogBuy.type=ORDER_TYPE_BUY_STOP; //тип ордера, который исполняется по указанной цене или по цене лучше указаной //в данном случае ордер установится по цене выше или равной указанной //если бы тип ордера был buy_limit, то он бы исполнился //по указанной цене или ценам, ниже указанной BigDogBuy.type_filling=ORDER_FILLING_AON; //данный параметр показывает, как ведёт себя ордер //при частичном исполнения обьёма BigDogBuy.expiration=TimeTradeServer()+6*60*60; //так как после открытия америки прошло 2 часа, а рабочий день у нас 8 часов, то 8-2 = 6 BigDogSell.action=TRADE_ACTION_PENDING; // Устанавливаем отложенный ордер BigDogSell.magic = MagicNumber; BigDogSell.symbol=Symbol(); BigDogSell.price=Lowest; //Цена, по которой будет установлен ордер BigDogSell.volume=Lots; BigDogSell.sl=Higest; //Стоп лосс устанавливаем по стратегии BigDogSell.tp=Lowest-TakeProfit*Point(); //устанавливаем тейк профит BigDogSell.deviation=dev; //Минимальное отклонение от запрошенной цены, //то есть, насколько цена исполения может отличаться от заданной цены BigDogSell.type=ORDER_TYPE_SELL_STOP; //тип ордера, который исполняется по указанной цене или по цене лучше указаной //в данном случае ордер установиться по цене ниже или равной указанной //если бы тип ордера был buy_limit, то он бы исполнился //по указанной цене или ценам ниже указанной BigDogSell.type_filling=ORDER_FILLING_AON; //данный параметр показывает, как ведёт себя ордер //при частичном исполнения обьёма BigDogSell.expiration=TimeTradeServer()+6*60*60; //так как после открытие америки прошло 2 часа, а рабочий день у нас 8 часов, то 8-2 = 6 MqlTradeResult ResultBuy,ResultSell; OrderSend(BigDogBuy,ResultBuy); OrderSend(BigDogSell,ResultSell);
Не принимай за критику просто понятнее былобы строку
BigDogBuy.expiration=TimeTradeServer()+6*60*60; //так как после открытия америки прошло 2 часа, а рабочий день у нас 8 часов, то 8-2 = 6
заменить на
BigDogBuy.expiration=TimeTradeServer()+6*PeriodSeconds(PERIOD_H1); //так как после открытия америки прошло 2 часа, а рабочий день у нас 8 часов, то 8-2 = 6
я понимаю, это привычка с MQL4 ;)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Помогите выставитить ордер с помощью эксперта...