Помощь по реализации написания продуктов в коде MQL - Форум о заработке, инвестициях и криптовалюте
Форум о заработке, инвестициях и криптовалюте
animated-gif-3

Вернуться   Форум о заработке, инвестициях и криптовалюте > Практический трейдинг > Все о автоматизации торгового процесса > Архив Практического трейдинга

Важная информация

 
 
Опции темы Опции просмотра
Старый 03.03.2013, 11:31   #1
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
Автор темы По умолчанию

Есть индикатор Forex off trend 3, он есть в сободном доступе и найти его не проблема. По нему пишу советника, но пока не могу реализивать следующее: Когда красная линия пересекает синюю СВЕРХУ в низ, то открывается селл. И наоборот, когда с низу - то бай. Когда поступает новый сигнал, то предыдущий ордер закрывается и открывается новый.

Нужен только алгоритм открытия при условиях пересечения "вверх" и "вниз", и условие открытия противоположного при закрытии предыдущего.

Задача не сложная, но почему то встал в ступор. Хэлпаните, ели есть время.
madman вне форума  
Старый 03.03.2013, 11:38   #2
osieris
Мастер
 
Регистрация: 21.11.2012
Сообщений: 1,531
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Подскажите а он случайно не на пересечении двух машек? если они то не советую вам с ним заморачиватся, а по сути посоветую вам взять советник на пересечении скользящих и просто поменять(заменить) параметры МА на параметры Forex off trend 3 индикатора, я думаю что должно получиться , так как к примеру пересечение в советнике кросс ма нормально выражено .
osieris вне форума  
Старый 03.03.2013, 14:13   #3
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
Автор темы По умолчанию

Спасибо за совет. Но я для себя это делаю и хочу докопаться до истины. А переделывать уже существующий - конечно можно, но возможны "помехи", так как код доннора под другую ТС заточен.

А судя по коду индикатора, там не просто МА с разными периодами.
madman вне форума  
Старый 04.03.2013, 16:10   #4
Yurchik36
Специалист
 
Аватар для Yurchik36
 
Регистрация: 15.09.2012
Сообщений: 919
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Цитата:
Сообщение от madman Посмотреть сообщение
Есть индикатор Forex off trend 3, он есть в сободном доступе и найти его не проблема. По нему пишу советника, но пока не могу реализивать следующее: Когда красная линия пересекает синюю СВЕРХУ в низ, то открывается селл. И наоборот, когда с низу - то бай. Когда поступает новый сигнал, то предыдущий ордер закрывается и открывается новый.

Нужен только алгоритм открытия при условиях пересечения "вверх" и "вниз", и условие открытия противоположного при закрытии предыдущего.

Задача не сложная, но почему то встал в ступор. Хэлпаните, ели есть время.
Скачал индикатор, т.к. он меня заинтересовал. Показывает довольно неплохие входы. Но внутри его нету намёка на то, что он использует стандартные МА, только с разными периодами. Этот индикатор создаёт свои некие подобные линии, только рассчитываются они по максимуму и по минимуму. А потом отнимается и т.д. Я не великий программист, но могу только предположить пути. Или искать как сделать чтоб советника основывался на индикатор(которого нет в стандарнтых МQL). Или же построить советник основанный на данном индикаторе, только в конце, где



if (val1 > val2) Comment("покупка buy ",val1);

if (val1 < val2) Comment("продажа sell ",val2);

в этих местах прописать OrderSend.

Так будет намного проще. Но если вы используете много индикаторов то лучше не перегружать советника кодом и подгружать каждый индикатор отдельно через

double val=iCustom(NULL, 0, "Forex off trend 3",13,1,0);
Yurchik36 вне форума  
Старый 05.03.2013, 08:35   #5
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
Автор темы По умолчанию

Цитата:
Сообщение от Yurchik36 Посмотреть сообщение
Скачал индикатор, т.к. он меня заинтересовал. Показывает довольно неплохие входы. Но внутри его нету намёка на то, что он использует стандартные МА, только с разными периодами. Этот индикатор создаёт свои некие подобные линии, только рассчитываются они по максимуму и по минимуму. А потом отнимается и т.д. Я не великий программист, но могу только предположить пути. Или искать как сделать чтоб советника основывался на индикатор(которого нет в стандарнтых МQL). Или же построить советник основанный на данном индикаторе, только в конце, где



if (val1 > val2) Comment("покупка buy ",val1);

if (val1 < val2) Comment("продажа sell ",val2);

в этих местах прописать OrderSend.

Так будет намного проще. Но если вы используете много индикаторов то лучше не перегружать советника кодом и подгружать каждый индикатор отдельно через

double val=iCustom(NULL, 0, "Forex off trend 3",13,1,0);
if (val1 > val2) Comment("покупка buy ",val1);

if (val1 < val2) Comment("продажа sell ",val2);

Эта функция просто выводит комментарий (строчку) на график с рекомендацией купить или продать.

Ааа. Вы имеете ввиду просто прописать привязку советника к этим строчкам? Получится, если выполняется условие val1 > val2, то он просто открывает бай и если обратное, то селл. Идея не плохая. Мне останется только реализовать (при смене на противоположное значение) закрытие ордера.

Тейкпрофит нет смысла задавать, т.к. уменьшится отдача.
madman вне форума  
Старый 05.03.2013, 19:19   #6
Yurchik36
Специалист
 
Аватар для Yurchik36
 
Регистрация: 15.09.2012
Сообщений: 919
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Цитата:
Сообщение от madman Посмотреть сообщение
Ааа. Вы имеете ввиду просто прописать привязку советника к этим строчкам?
Рад помочь. Иногда бывает сидишь думаешь как что-то реализовать. А решение совсем близко. Проще спросить у кого-то.

Вы создадите ветку с данным советником? Очень уж мне он кажется перспективным.

Если трал будет, ТП не обязателен)



Могу предложить ещё если красная и синяя линия идут горизонтально то якобы это флет и не торопиться лесть в торговлю. Просто заметил что могут линии пересектись и идти нейкий промежуток вместе, а когда уже расходятся чтоб сразу открыть ордер
Yurchik36 вне форума  
Старый 06.03.2013, 09:54   #7
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
Автор темы По умолчанию

Цитата:
Сообщение от Yurchik36 Посмотреть сообщение
Рад помочь. Иногда бывает сидишь думаешь как что-то реализовать. А решение совсем близко. Проще спросить у кого-то.

Вы создадите ветку с данным советником? Очень уж мне он кажется перспективным.

Если трал будет, ТП не обязателен)



Могу предложить ещё если красная и синяя линия идут горизонтально то якобы это флет и не торопиться лесть в торговлю. Просто заметил что могут линии пересектись и идти нейкий промежуток вместе, а когда уже расходятся чтоб сразу открыть ордер
Да, как довиду до ума его и будет чем [s]похвастаться[/s] поделиться, обязательно создам ветку.

Нов от незадача, я что то упустил. Прописал, что при if (val1 > val2) открыл бай и закрывал селл, а при if (val1 < val2) открывал селл и закрывал бай. Так теперь этот гаденышь открывает бай, тут же закрывает бай, и снова тут же открывает селл, опять же закрывает селл и так далее до без конечности. Он одно пересечение воспринимает как новое, отказывается его вести дальше, алгоритм срабатывает на нем же, а не на следующем пересечении.

Теперь пытаюсь вылечить его от этого недуга.

П.С. все же у меня лучше получается дорабатывать советники, чем писать самому с нуля.
madman вне форума  
Старый 06.03.2013, 23:16   #8
Yurchik36
Специалист
 
Аватар для Yurchik36
 
Регистрация: 15.09.2012
Сообщений: 919
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Цитата:
Сообщение от madman Посмотреть сообщение
Теперь пытаюсь вылечить его от этого недуга.

П.С. все же у меня лучше получается дорабатывать советники, чем писать самому с нуля.
Что-то хворает ваш советник часто)

Мне казалось дорабатывать сложнее, так как трудно пролистать 20 страниц советника и разобраться в чём идёт суть.



Как я понимаю val1- красная линия. val2-синяя линия. И если красная выше синей, то сигнал на покупку. И никак не может в это же время быть сигнал на продажу, ведь мы знаем что красная выше синей.



Или может быть вы вместо (>) поставили знак (>=). Или вместо (<) поставили знак (<=). Тогда при пересечении могло бы выполняться равенство и открывать и закрывать сделки.



Ещё вариант что индикатор перерисовывается каждую секунду и возможно изменение красной линии над и под синей. Но посмотрел и он вроде стоит на месте.



Может стоит его вывесить на обозрение? Или в личку. Одна голова хорошо, а две лучше)
Yurchik36 вне форума  
Старый 07.03.2013, 15:28   #9
madman
Любитель
 
Аватар для madman
 
Регистрация: 17.02.2013
Сообщений: 469
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для madman с помощью ICQ
Автор темы По умолчанию

Не могу отучить его открывать ордера на открытии следующей свечи. Скорее всега, ответ леэит на поверхности, я а копаю и углубляюсь в дебри.

Вот стандарное открытие ордера с рынка, открывает замечательно.





if(Forexofftrend3 == OP_BUY) //Buy

{

res = OrderSend(Symbol(), OP_BUY, lots, Ask, slip, Bid - StopLoss*Point, Bid + TakeProfit*Point, NULL, Magic);

if(res < 0) {Alert("Oreder Sent Error", GetLastError());}

}





Я подразумеваю (да что там, уверен), что у меня ошибка тут



if(val1 > val2)

return(OP_BUY);

else if(val1 < val2)

return(OP_SELL); Знак = в выражении val1 >= val2 никак на торги не влияют.



Но если я не верну (return) функцию на первоначальное условие открытия ордера, то он его попросту его не откроет. И замкнутая цепь получается.

Есть предложение, как его заставить открываться только не получении противоположного сигнала?

Жду предложений.

Пока прикрутил стоп и тейк, которые в последствии удалю конечно.

Выкладываю исходник и индикатор.
madman вне форума  
Старый 08.03.2013, 09:06   #10
Yurchik36
Специалист
 
Аватар для Yurchik36
 
Регистрация: 15.09.2012
Сообщений: 919
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

В данный момент я нахожусь не за своим рабочим компьютером и поэтому смогу протестировать своё предположение только после выходных.



Почему вы не хотите сделать что-то типо такого:





double val1 = iCustom(NULL, 0, "Forexofftrend3", 0, 1);

double val2 = iCustom(NULL, 0, "Forexofftrend3", 1, 1);

if(val1 > val2)

{

OrderSend(Symbol(), OP_BUY, lots, Ask, slip, Bid - StopLoss*Point, Bid + TakeProfit*Point, NULL, Magic);

}

if(val1 < val2)

{

OrderSend(Symbol(), OP_SELL, lots, Bid, slip, Ask + StopLoss*Point, Ask - TakeProfit*Point, NULL, Magic);

}

return(0);



Предложение как заставить открыть на получении противоположного сигнала:

Смотрим есть ли открытые ордера. А также бай или селл они.

Если открыт ордер бай, и появился сигнал (val1 > val2), то закрываем ордер бай и открываем ордер селл.

И наоборот:

Если открыт ордер селл, и появился сигнал (val1 > val2), то закрываем ордер селл и открываем ордер бай.
Yurchik36 вне форума  
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Загрузка...


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
vB.Sponsors

© 2009-2020 «ACRYPTOINVEST.COM»
сообщество трейдеров, инвесторов и игроков