Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Некоторые замечания/рекомендации
У Вас тип пользовательской функции void тоесть ничего не возвращает данная функция после выполнения ее действий
тогда вы просто не узнаете открылся у Вас ордер или нет в месте откуда данная функция вызывалась (стоит ее повторять или нет) если не прибегать к дополнительному анализирующему блоку
... возможно вопрос не к месту но все же товарищи разработчики подскажите как будет быстрее выполняться код
а ) если в пользовательскую функцию будут переданы все необходимые переменные в качестве параметров
б) пользовательская функция работает с глобальными перемнными (определенные за пределами какой либо функции)
По рекомендациям "правельнее" вариант "а"... а быстерее ?
if(BuyTicket<1)
{
double BuyPrice=NormalizeDouble(ObjectGet(BuyLine,OBJPROP_PRICE1),Digits)+OrderIndent*Point;
BuyTicket=OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,0,0,0,ExpertComment,BuyMagic, 0,BuyColor);
Sleep(1000);
OrderModify(OrderTicket(),OrderOpenPrice(),BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point, 0,CLR_NONE);
}
С уважением Dimi
Добрый день, всем!!! Вот один вопрос на засыпку есть. Подскажите пожалуйста, где я допустил ошибку. Эксперт должен выставлять отложку. При ее срабатывании он должен выставить стоп лосс и ТР. Отложки он выставляет, а вот модифицирует не всегда, то вообще зависает. Вот сам код.
if(BuyTicket<1)
{
double BuyPrice=NormalizeDouble(ObjectGet(BuyLine,OBJPROP_PRICE1),Digits)+OrderIndent*Point;
BuyTicket=OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,0,0,0,ExpertComment,BuyMagic, 0,BuyColor);
Sleep(1000);
OrderModify(OrderTicket(),OrderOpenPrice(),BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point, 0,CLR_NONE);
}
С уважением Dimi
Может стоит попробовать на проверку потока
и посмотреть
когда ордер не промодифицировался
да и вообще бы прежде чем модифицирвать ордер его бы сначала
OrderSelect(....) по тикету наверное проще будет так как он у вас уже есть (BuyTicket)
olyakish, я вас правильно понял? Вы предлагаете использоать конструкцию примерно такую для модификации -
И ещё. Как или когда лучше модифицировать ордер. Пока он находится в состоянии "отложки" ? Либо дождаться , пока он сработает и уже тогда модифицировать (т.е. поставить в него сл и тп), используя эту же конструкцию ?olyakish, я вас правильно понял? Вы предлагаете использоать конструкцию примерно такую для модификации -
И ещё. Как или когда лучше модифицировать ордер. Пока он находится в состоянии "отложки" ? Либо дождаться , пока он сработает и уже тогда модифицировать (т.е. поставить в него сл и тп), используя эту же конструкцию ?У Вас уж есть тикет и не нужно нагружать терминал
проще
Правда это при условии что ордер уже не успел закрыться ( В истории вроде модифицировать уже нельзя :))
...И ещё. Как или когда лучше модифицировать ордер....
Думаю когда он в отложке его можно быстрее промодифицировать . т.к на некоторых серверах эту операцию выполняет автомат а сработанный ордeр модифицирует (подтверждает уже реальный чел) только это еще и от состояния рынка (новости, размер лота ордера и тд.) да еще и от самого ДЦ зависит какая у них политика . А это тайна за семью печатями :)
А более точно думаю Вам "писатели" MT ответят...
И ещё вопрос : как мне лучше/правильнее указать в OrderModify
- вот так: OrderModify(OrderTicket(),OrderOpenPrice()... ...
либо вот так : OrderModify(BuyTicket, OrderOpenPrice()... ...
И ещё вопрос : как мне лучше/правильнее указать в OrderModify
- вот так: OrderModify(OrderTicket(),OrderOpenPrice()... ...
либо вот так : OrderModify(BuyTicket, OrderOpenPrice()... ...
в вашем случае без разницы, если используются функции внутри, надо, что бы нужный ордер был предварительно выбран по OrderSelect
при таком подходе можно и без OrderSelect, ордер выбирается по тикету
OrderModify( gTicket , gPRICE,
Благодарю всех! Вроде понятно. Если использовать внутри OrderModify(OrderTicket(), то надо выбирать , используя OrderSelect
А если так: OrderModify(BuyTicket - то можно и без OrderSelect
С уважением Dimi.