уважаемые программисты. помогите новичку. вот уже вторую неделю не могу разобраться в чем проблема. (пытаюсь написать советника который ставит отложенные ордера по фракталам, определил уровни фракталов//благо есть поиск//, но отложенные ордера по этим уровням выставляет на каждом тике... не могу понять, что не так. помогите рахобраться
Для начала,я не вижу у вас в коде ни одного условия установки ордеров. Вообщето делается так:
ставится условие if(MA0 >MA1){то делается вот это}
у вас же нет условия запрета/разрешения на установку отложек, поэтому естевственно они будут устанавливаться на каждом тике, тем более что установка отложек не требует маржевого покрытия(вот их исполнение уже да).
Для начала,я не вижу у вас в коде ни одного условия установки ордеров. Вообщето делается так:
ставится условие if(MA0 >MA1){то делается вот это}
у вас же нет условия запрета/разрешения на установку отложек, поэтому естевственно они будут устанавливаться на каждом тике, тем более что установка отложек не требует маржевого покрытия(вот их исполнение уже да).
а в данном случае что будет место MA0>Ma1?
у меня то с этим и проблема условием:
if(FrUp>чему-то/ наверное переменной newFrUp)
тогда OrderSend.
Вопрос как как сравнить тогда значения только что сформировавшегося фрактала(newFrUp) и уже существующего?(FrUp)
а в данном случае что будет место MA0>Ma1?
у меня то с этим и проблема условием:
if(FrUp>чему-то/ наверное переменной newFrUp)
тогда OrderSend.
Вопрос как как сравнить тогда значения только что сформировавшегося фрактала(newFrUp) и уже существующего?(FrUp)
Ну я же не знаю какие вы хотите задать условия. Для начала посмотрите что возвращает
iFractals(symbol, timeframe, MODE_UPPER,i); и iFractals(symbol, timeframe, MODE_LOWER,i); на каком баре и исходя из этого принимайте решение какое должно быть условие.
Прикрепляю библиотеку для вывода значений буфере в файл .txt
Ну я же не знаю какие вы хотите задать условия. Для начала посмотрите что возвращает
iFractals(symbol, timeframe, MODE_UPPER,i); и iFractals(symbol, timeframe, MODE_LOWER,i); на каком баре и исходя из этого принимайте решение какое должно быть условие.
Прикрепляю библиотеку для вывода значений буфере в файл .txt
функция iFractals - возращает мне значения верхнего и нижнего последнего фрактала на каждом тике.
спасибо за библиотеку в запись файл.
я так понял что он записывает значение Array[i], правильно?
если записывать значени последние выданое iFractals(например FrUp), потом производить чтение файла и это значение присвоить переменой (newFrUp) и сравнить их через условие
if(newFrUp!=FrUP)
тогда открываем ордер по FrUp и записываем в файл это значение. (это будет работать)
По поводу условия можно так сделать
if (Order==0) { int ticket_b = OrderSend(Symbol(),OP_BUYSTOP,Lots,price_b,0,SL_b,TP_b,NULL,magic,0,Green); Order=1; }
А когда ордер закрывается, то снова присваиваем Order=0.
Я всегда так делаю. Тогда ордера не будут устанавливаться на каждом тике.
По поводу условия можно так сделать
А когда ордер закрывается, то снова присваиваем Order=0.
Я всегда так делаю. Тогда ордера не будут устанавливаться на каждом тике.
хорошая идея. спасибо. буду пробывать....
вот попробывал получилось такое:
// определение фракталов -------------------------------------------- string symbol = Symbol(); int timeframe = Period(); double FrUp = GetPriceLastFractal(symbol, timeframe, 0); double FrDw = GetPriceLastFractal(symbol, timeframe, 1); //----------------------- // окрытие Buy double price_b = FrUp+(spread+offset)*tick; // определение цены "Ask" для открытия ордера buy double TP_b = price_b+TakeProfit*tick; double SL_b = FrDw-offset*tick; int Order=OrdersTotal();; if (Order==0) { int ticket_b = OrderSend(Symbol(),OP_BUYSTOP,Lots,price_b,0,SL_b,TP_b,NULL,magic,0,Green); Order=1; }
остался вопрос: а как определить что ордер закрылся? через фунцию orderclose?
У меня такое стоит на одном из советников
if(OrderSelect(ticket_2, SELECT_BY_TICKET,MODE_HISTORY)==true) { t_close_2=OrderCloseTime(); if (t_close_2!=0) { t_close_2=0; ticket_2=0; } }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
уважаемые программисты. помогите новичку. вот уже вторую неделю не могу разобраться в чем проблема. (пытаюсь написать советника который ставит отложенные ордера по фракталам, определил уровни фракталов//благо есть поиск//, но отложенные ордера по этим уровням выставляет на каждом тике... не могу понять, что не так. помогите рахобраться