Прекрасно!
Покажите пжста результат торговли советника в тестере по авто оптимизированной МА?
Прекрасно!
Покажите пжста результат торговли советника в тестере по авто оптимизированной МА?
пожалуйста..за 10 лет H4
пожалуйста..за 10 лет H4
Ок.
Теперь тест в течении 10 лет на демо или хотя бы месяц. (у Вас на скрине 8 сделок)
Подтвердится?
Потом рассмотрим необходимость в дальнейшей оптимизации
пожалуйста..за 10 лет H4
Ок.
Теперь тест в течении 10 лет на демо или хотя бы месяц. (у Вас на скрине 8 сделок)
Подтвердится?
Потом рассмотрим необходимость в дальнейшей оптимизации
на скрине 418 сделок
на скрине 418 сделок
Я сделал вывод по 8-ми о том, что торговля на демо уже может дать представление о состоятельности идеи.
После этого можно реал на центиках в течении месяца, но уже сравнить с демо,
а лучше параллельно и демо и реал прогнать.
Честно - идея нравится.
Подобными примерами невозможно доказать эффективность оптимизации МА. Дело в том, что с мартином можно получить такие же результаты и лучше вообще без всякого индикатора. Сделайте советник без мартина с оптимизированной МА с одним ордером в рынке и как положено со стопами(с ограничением убытков), тогда можно будет делать какие-то выводы.
Безусловно без мартина картинка не такая приятная,но по крайней мере нет слива-и это не может не радовать)))
Безусловно без мартина картинка не такая приятная,но по крайней мере нет слива-и это не может не радовать)))
Ну так похожую картинку можно получить и на обычной МА с оптимальным периодом.
у меня не получалось...-поэтому и страдаю)))

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал код автооптимизации MA.
Возможно у кого-то есть более продвинутый вариант,чтобы не изобретать велосипед
int OPT()
{
ma_mem=0;
sh_mem=0;
win_mem=0;
loss_mem=0;
profit_mem=0;
sdelok_mem=0;
for(s=ma_opt_start,sh=sh_opt_start;s<=ma_opt_end;s=s+ma_opt_step)
{
ZERO();
TP=int(s*k_TP*10);
SL=int(TP*k_SL);
if(TP<min_TP || SL<min_SL){continue;}
//-------------------------------------------------------------------------------------------------
for(bar=bar_Opt;bar!=1;bar--)
{
if(pos_opt!=0)//Если есть открытые позиции
{
if(pos_opt==1)//Работаем с ордером BUY
{
if(Open[bar]>=open_opt+TP*Point)
{
win++;
profit=profit+TP;
pos_opt=0;
}
if(Open[bar]<=open_opt-SL*Point)
{
loss--;
profit=profit-SL;
pos_opt=0;
}
}
if(pos_opt==2)//Работаем с ордером SELL
{
if(Open[bar]<=open_opt-TP*Point)
{
win++;
profit=profit+TP;
pos_opt=0;
}
if(Open[bar]>=open_opt+SL*Point)
{
loss--;
profit=profit-SL;
pos_opt=0;
}
}
}
if(pos_opt==0)//Если нет открытых позиций
{
if(SIGNAL(s,bar+sv+1,sh)==1)//Покупка
{
sdelok++;
pos_opt=1;//Открыта позиция BUY
open_opt=Close[bar];//Цена открытия
continue;
}
if(SIGNAL(s,bar+sv+1,sh)==2)//Продажа
{
sdelok++;
pos_opt=2;//Открыта позиция SELL
open_opt=Close[bar];//Цена открытия
continue;
}
}
if(bar==2)
{
MEM();
if(s==ma_opt_end){sh++;s=ma_opt_start;}
break;
}
if(sh==sh_opt_end){break;}
}
//-------------------------------------------------------------------------------------------------
}
Print(
" ma: ",ma_mem,
" sh: ",sh_mem,
" win: ",win_mem,
" loss: ",loss_mem*-1,
" profit: ",profit_mem,
" sdelok: ",sdelok_mem
);
return(ma_mem);
}
//+------------------------------------------------------------------+
void ZERO()
{
sdelok=0;
loss=0;
win=0;
profit=0;
pos_opt=0;
open_opt=0;
}
//+------------------------------------------------------------------+
int SIGNAL(int ma_sig,int bar_sig,int shift)
{
sig=0;
MA1=iMA(Symbol(),Period(),ma_sig,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig);
MA2=iMA(Symbol(),Period(),ma_sig,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig+1);
MA3=iMA(Symbol(),Period(),ma_sig*2,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig);
MA4=iMA(Symbol(),Period(),ma_sig*2,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig+1);
MA5=iMA(Symbol(),Period(),ma_sig*3,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig);
MA6=iMA(Symbol(),Period(),ma_sig*3,shift,MODE_LWMA,PRICE_WEIGHTED,bar_sig+1);
if(MA6>MA5&&MA4>MA3&&MA2>MA1&&MA5>MA3&&MA3>MA1){sig=2;}
if(MA6<MA5&&MA4<MA3&&MA2<MA1&&MA5<MA3&&MA3<MA1){sig=1;}
return (sig);
}
//+------------------------------------------------------------------+
void MEM()
{
if((win_mem_opt==true && loss_mem_opt==false && profit_mem_opt==false && sdelok_mem_opt==false && win_mem<win) ||
(win_mem_opt==false && loss_mem_opt==true && profit_mem_opt==false && sdelok_mem_opt==false && loss_mem>loss) ||
(win_mem_opt==false && loss_mem_opt==false && profit_mem_opt==true && sdelok_mem_opt==false && profit_mem<profit) ||
(win_mem_opt==false && loss_mem_opt==false && profit_mem_opt==false && sdelok_mem_opt==true && sdelok_mem<sdelok) ||
(win_mem_opt==true && loss_mem_opt==true && profit_mem_opt==true && sdelok_mem_opt==true && win_mem<win && loss_mem>loss && profit_mem<profit && sdelok_mem<sdelok) ||
(win_mem_opt==false && loss_mem_opt==true && profit_mem_opt==true && sdelok_mem_opt==true && loss_mem>loss && profit_mem<profit && sdelok_mem<sdelok) ||
(win_mem_opt==true && loss_mem_opt==false && profit_mem_opt==true && sdelok_mem_opt==true && win_mem<win && profit_mem<profit && sdelok_mem<sdelok) ||
(win_mem_opt==true && loss_mem_opt==true && profit_mem_opt==false && sdelok_mem_opt==true && win_mem<win && loss_mem>loss && sdelok_mem<sdelok) ||
(win_mem_opt==true && loss_mem_opt==true && profit_mem_opt==true && sdelok_mem_opt==false && win_mem<win && loss_mem>loss && profit_mem<profit) ||
(win_mem_opt==true && loss_mem_opt==false && profit_mem_opt==false && sdelok_mem_opt==true && win_mem<win && sdelok_mem<sdelok) ||
(win_mem_opt==false && loss_mem_opt==true && profit_mem_opt==true && sdelok_mem_opt==false && loss_mem>loss && profit_mem<profit) ||
(win_mem_opt==true && loss_mem_opt==false && profit_mem_opt==true && sdelok_mem_opt==false && win_mem<win && profit_mem<profit) ||
(win_mem_opt==false && loss_mem_opt==true && profit_mem_opt==false && sdelok_mem_opt==true && win_mem<win && sdelok_mem<sdelok) ||
(win_mem_opt==true && loss_mem_opt==true && profit_mem_opt==false && sdelok_mem_opt==false && win_mem<win && loss_mem>loss) ||
(win_mem_opt==false && loss_mem_opt==false && profit_mem_opt==true && sdelok_mem_opt==true && profit_mem<profit && sdelok_mem<sdelok))
{
ma_mem=s;
sh_mem=sh;
win_mem=win;
loss_mem=loss;
profit_mem=profit;
sdelok_mem=sdelok;
ZERO();
}
}