Простой советник на основе MA

  • Автор темы Автор темы Milevshi
  • Дата начала Дата начала

Milevshi

Активный участник
Коллеги,

Зашел в тупик с разработкой советника. Решил выложить здесь в надежде на дельные идеи.
На этом форуме относительно давно и скажу честно, не ожидаю хороших советов от посетителей этой страницы.
Но надеюсь найти опытных трейдеров и программистов для совместной работы.

Для обратной связи:
Почта: [email protected]
Skype: sergey.yarmish

Теперь о советнике:
Основан на технических индикаторах Moving Average. Выкладываю код в mq4, кому надо разберется. Алгоритм достаточно простой.

Тесты за последние 4 года относительно стабильные. Сверял реальную торговлю с исторической, практически все сходится.

Буду признателен за:
1. Ваши предложения по доработке
2. Обоснованную критику и замечания
3. Предложения по совместной доработке советников
 

Вложения

dOK-45

Новичок форума
Milevshi а в чем собственно тупик? можт я чего не увидел или недопонял?
 

Milevshi

Активный участник
Нужны идеи, как:
1) Повысить доходность советника;
2) Сделать его работу (доходность) более стабильной;
3) Снизить просадку.

Также буду признателен всем, кто сделает мониторинг демо/реального счета и выложит результаты оптимизации советника

У меня получилось следующее:
1) Протестировал советника на 10 парах, средняя доходность ооколо 20-30% в мес. при такой же просадке. Результаты на тестах стабильные с 2009 года (за более ранние периоды принципиально не тестировал)
2) На реальных тестах за последние пару недель налюдается высокая волатильность (за неделю может быть +20%, а потом -20%) - то есть нет стабильности в работе

Давайте коллективно обсудим работу советника и попробуем его доработать
 

Viko2000

Почетный гражданин
Milevshi а в чем собственно тупик? можт я чего не увидел или недопонял?

Не надо ничего понимать:embrace:…..надо всего лишь прогнать по тесту в 99.9 котировках.
И если будет примерно положительно…..бот примерно стоящий.):)
 

dOK-45

Новичок форума
Не надо ничего понимать:embrace:…..надо всего лишь прогнать по тесту в 99.9 котировках.
И если будет примерно положительно…..бот примерно стоящий.):)


9,9% думаю особой роли не сыграют..а так..да согласен..стоящий...
 

dOK-45

Новичок форума
Нужны идеи, как:
1) Повысить доходность советника;
2) Сделать его работу (доходность) более стабильной;
3) Снизить просадку.

1-3) Делать мультивалютный вариант(припаивать магик, закрытие/трал общего профита)...но это сугубо ИМХО...
 

P_Trade

Местный житель
Коллеги,

Зашел в тупик с разработкой советника. Решил выложить здесь в надежде на дельные идеи.
На этом форуме относительно давно и скажу честно, не ожидаю хороших советов от посетителей этой страницы.
Но надеюсь найти опытных трейдеров и программистов для совместной работы.

Для обратной связи:
Почта: [email protected]
Skype: sergey.yarmish

Теперь о советнике:
Основан на технических индикаторах Moving Average. Выкладываю код в mq4, кому надо разберется. Алгоритм достаточно простой.

Тесты за последние 4 года относительно стабильные. Сверял реальную торговлю с исторической, практически все сходится.

Буду признателен за:
1. Ваши предложения по доработке
2. Обоснованную критику и замечания
3. Предложения по совместной доработке советников
Посмотрел, протестировал. Система для EURUSD и так очень хороша.
Есть такая пословица: "Лучшее, враг хорошего"
Что можно сделать, разве что оптимизацией заняться.
 

P_Trade

Местный житель
И еще добавлю. Во время выставления ордера, вы открываете позицию сразу с установленными тейкпрофитом и стоплоссом.
tick = OrderSend(Symbol(), posit, get_lot_volume()*multiple_, priceOP, Slippage, SL, TP, Сomment, MAGIC, 0, Col);
==============
На ECN платформах, лучше делать так, сначала открывается ордер без профита и лосса, а уже вторым заходом выставляются тейкпрофит и стоплосс через OrderModify():
//---- Открытие ордеров ---------------------------------------------------------------------------------------------
if (posit >= 0)
{
tick = OrderSend(Symbol(), posit, get_lot_volume()*multiple_, priceOP, Slippage, 0, 0, Сomment, MAGIC, 0, Col);
Sleep(5000);
if (tick > 0)
{
if (OrderSelect(tick, SELECT_BY_TICKET, MODE_TRADES))
{
OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
Print("Order " + stpos + " opened!: ", OrderOpenPrice());
}
}
else
Print("Error opening " + stpos + " order!: ", GetLastError());
}
 
Последнее редактирование:

Kainfx

Местный житель
Всем, доброго времени суток!
у меня вопрос, в этой сове есть мм?
если нет, то может попробовать снизить просадку мм?
 

Kainfx

Местный житель
например, как вариант:
Первая сделка 0.01, если она прибыльная следующая открывается таким же лотом 0.01, если сделка убыточная то следующая открывается лотом 0.02, если и она убыточная- 0.04, если и она убыточная – 0.08 и если сделка (любая например 0.08) прибыльная, следующая поза открывается лотом 0.01 и далее по алгоритму.
Т.е., при череде убыточных сделок, увеличивается лот, сова фиксирует убыток по каждой паре в валюте депо, и если следующая сделка прибыльная и перекрывает полученный убыток по паре, тогда поза снова открывается лотом 0.01, если не перекрывает, а сокращает убыток, но не весь, тогда лот сокращается (например: убыток 50$, лот 0.08 –прибыль = 25$, тогда след лот открывается в объёме 0.04), и работает в таком алгоритме пока не перекроет накопленный убыток.
В общем, лоты увеличиваются пропорционально накопленным убыткам, при их перекрытии, торговля начинается с минимального лота НЕЗАВИСЕМО ОТ ДЕПОЗИТА!!!
 

Kainfx

Местный житель
или:
По ММ:
Пересчет баланса – запускается при установке советника и задаётся в количестве дней когда идёт повторный пересчёт, при пересчёте сумма баланса берётся за 100% (от которого пляшут настройки по риску и лотам)
Прирост лота в % от баланса используется при череде убыточных сделок для открытия сл. позиции от 100% после пересчёта баланса; (т.е., также не учитывает полученную прибыль, а с учетом той суммы, которая была на депозите поле пересчёта депозита)
Максимальный риск - % (например 0,25 =25% от депо на начало пересчета) Коэффициент расчета стартового лота (0.01 = 1%) При достижении убытка заданном в % не торгует до конца месяца (до следующего перерасчета депозита), (т.е., также не учитывает полученную прибыль, а с учетом той суммы, которая была на депозите поле пересчёта депозита).
 

dOK-45

Новичок форума
например, как вариант:
Первая сделка 0.01, если она прибыльная следующая открывается таким же лотом 0.01, если сделка убыточная то следующая открывается лотом 0.02, если и она убыточная- 0.04, если и она убыточная – 0.08 и если сделка (любая например 0.08) прибыльная, следующая поза открывается лотом 0.01 и далее по алгоритму.
Т.е., при череде убыточных сделок, увеличивается лот, сова фиксирует убыток по каждой паре в валюте депо, и если следующая сделка прибыльная и перекрывает полученный убыток по паре, тогда поза снова открывается лотом 0.01, если не перекрывает, а сокращает убыток, но не весь, тогда лот сокращается (например: убыток 50$, лот 0.08 –прибыль = 25$, тогда след лот открывается в объёме 0.04), и работает в таком алгоритме пока не перекроет накопленный убыток.
В общем, лоты увеличиваются пропорционально накопленным убыткам, при их перекрытии, торговля начинается с минимального лота НЕЗАВИСЕМО ОТ ДЕПОЗИТА!!!

МАРТИН=ЗЛО=СЛИВ... (сугубо имхо)
 

svoi

Местный знаток
Привет только увидел эту темку тут.
У меня есть похожий сов только на основе канала и МА. Не зхнаю что за индикатор такой IVR, но не суть разберусь будет время. По делу:
чтобы уменьшить просадку нужно напрочь отказаться от увеличения лотов после убыточных сделок, это только больше загоняет в минус, потому что и
так уже просадка а ордера опять открываются против шерсти, тут либо крыть минус как есть или заняться глубокой оптимизацией тех участков где лезет в просадку, может применить филтр со старшего таймфрейма. и второе более важное: увеличить прибыль можно увеличением кол-ва ордеров, а это возможно только с переходом на меньший таймфрейм, на M15 больше 2-3 сделок в день это предел для МАшек, либо открывать дополнительные ордера когда понятно что тащит профит, то есть пирамиддинг или доливка, пары ордеров с шагом 5-10 пипсов вполне достаточно.
 

Kainfx

Местный житель
Привет только увидел эту темку тут.
У меня есть похожий сов только на основе канала и МА. Не зхнаю что за индикатор такой IVR, но не суть разберусь будет время. По делу:
чтобы уменьшить просадку нужно напрочь отказаться от увеличения лотов после убыточных сделок, это только больше загоняет в минус, потому что и
так уже просадка а ордера опять открываются против шерсти, тут либо крыть минус как есть или заняться глубокой оптимизацией тех участков где лезет в просадку, может применить филтр со старшего таймфрейма. и второе более важное: увеличить прибыль можно увеличением кол-ва ордеров, а это возможно только с переходом на меньший таймфрейм, на M15 больше 2-3 сделок в день это предел для МАшек, либо открывать дополнительные ордера когда понятно что тащит профит, то есть пирамиддинг или доливка, пары ордеров с шагом 5-10 пипсов вполне достаточно.

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

Вложения

  • 1.jpg
    1.jpg
    469,1 КБ · Просмотры: 126

P_Trade

Местный житель
например, как вариант:
Первая сделка 0.01, если она прибыльная следующая открывается таким же лотом 0.01, если сделка убыточная то следующая открывается лотом 0.02, если и она убыточная- 0.04, если и она убыточная – 0.08 и если сделка (любая например 0.08) прибыльная, следующая поза открывается лотом 0.01 и далее по алгоритму.
Т.е., при череде убыточных сделок, увеличивается лот, сова фиксирует убыток по каждой паре в валюте депо, и если следующая сделка прибыльная и перекрывает полученный убыток по паре, тогда поза снова открывается лотом 0.01, если не перекрывает, а сокращает убыток, но не весь, тогда лот сокращается (например: убыток 50$, лот 0.08 –прибыль = 25$, тогда след лот открывается в объёме 0.04), и работает в таком алгоритме пока не перекроет накопленный убыток.
В общем, лоты увеличиваются пропорционально накопленным убыткам, при их перекрытии, торговля начинается с минимального лота НЕЗАВИСЕМО ОТ ДЕПОЗИТА!!!
А в код заглянуть никак не осилили?
==
//---- Внешние входные переменные ----------------------------------------------------------------------------------
extern string Settings_1 = "Trading Volumes";
extern double lot_volume_base = 0.09; // Исходный размер лота для депозита в $1000
extern double multiple_L_2 = 1.3; // Увеличение лота после 2-х убыточных сделок
extern double multiple_L_3 = 1.7; // Увеличение лота после 3-х убыточных сделок
extern double multiple_L_4 = 2.5; // Увеличение лота после 4-х убыточных сделок
extern double multiple_L_5 = 4.0; // Увеличение лота после 5-х убыточных сделок
extern double multiple_L_6 = 5.0; // Увеличение лота после 6-х убыточных сделок
==
 

svoi

Местный знаток
Спасибо, попробую применить его в своем скальпере....
 

Kainfx

Местный житель
А в код заглянуть никак не осилили?
==
//---- Внешние входные переменные ----------------------------------------------------------------------------------
extern string Settings_1 = "Trading Volumes";
extern double lot_volume_base = 0.09; // Исходный размер лота для депозита в $1000
extern double multiple_L_2 = 1.3; // Увеличение лота после 2-х убыточных сделок
extern double multiple_L_3 = 1.7; // Увеличение лота после 3-х убыточных сделок
extern double multiple_L_4 = 2.5; // Увеличение лота после 4-х убыточных сделок
extern double multiple_L_5 = 4.0; // Увеличение лота после 5-х убыточных сделок
extern double multiple_L_6 = 5.0; // Увеличение лота после 6-х убыточных сделок
==

спасибо, в код только сейчас заглянуть осилил)) я уезжал по делам))
 
Верх