Сырые идеи - страница 9

 

Некоторые индикаторы - модифицированные

Привет,

a_ZZ и a_ZZInd - "High_Low v2 (ZigZag)" и другие (сейчас не помню, &))

aDin - "ang_PR (Din)-v2".

Что вы думаете?

Ваше здоровье.

 

MACD Cross

Привет всем,

У меня есть идея для советника, использующего MACD 13,32,48 и PSAR Step 0.005 Max.0.05 или 0.006 и 0.06 H1 TF.

Точка входа при пересечении MACD (закрытие бара) и выход PSAR или опционально трейлинг стоп.

С уважением,

MFX

Файлы:
mc.gif  16 kb
 
 

Лучшая ежедневная стратегия...

Привет, ребята,

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

Спасибо

С УВАЖЕНИЕМ,

 
Файлы:
1.bmp  1318 kb
 

codersguru: не могли бы вы заменить EMA на тройное экспоненциальное скользящее среднее?

в советнике EMACROSS.

Это лучше, чем EMA.

спасибо.

 

Лучшая система для кросс пар

Привет

Я нашел очень хорошую систему, которая очень хорошо подходит для торговли кросс парами.

Она очень проста и основана на SMA и EMA, но очень эффективна. Если кто-то может разработать советника для этого, мы можем протестировать.

Будут использоваться 2 типа скользящих средних предыдущего бара

6 ema, 12 sma

Тренд вниз, если 6ema<12ma

и тренд вверх, если 6ema>12ma

сигнал на покупку или продажу

Продажа: если тренд вниз и продажа (бид) H

Или

Покупка: если тренд вверх и покупка(ask) L[Lowest(6,0)]

выход:

если тренд вниз, short, L[Lowest(6,0)].

если тренд вверх, лонг, H

разворот:

тренд вверх, шорт, L[Lowest(6,0)]

тренд вниз, лонг, H

------------------------------------------

Если какой-либо программист может сделать индикатор или советник для этой системы, мы все сможем увидеть ее потенциал.

 

Извините, но я не понял правила. Не могли бы вы рассказать подробнее или, возможно, использовать некоторые числовые значения для объяснения.

Спасибо,

Maji

 

Пробойный советник

Здравствуйте, эксперты,

Я хотел бы обратить ваше внимание на следующую тему, особенно на обсуждение fxengines. Вот ссылка: http://www.strategybuilderfx.com/forums/showthread.php?t=11530&page=4&pp

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

Пример 1: Сигнал входа - 60-минутный прорыв на 15 над максимумом последнего периода, лимитный выход на 30. Вероятность в отчете для GBP 60 MIN 15 триггера составляет 85.7%. Этот тест дал 84% и принес прибыль.

"Чистая производительность этого механизма составила 1298 пунктов при 84% успешности. Если бы все сделки были заключены на максимуме, то двигатель заработал бы 2521 пипсов. Однако в среднем 1,97 пункта на сделку было "отдано" от максимума до точки выхода. Максимальная просадка для этого механизма составила 454 пункта, при этом 3 убыточные сделки были заключены во время худшей полосы убытков, а 46 выигрышных - во время лучшей полосы выигрышей".

ПРИМЕР 2: Сигнал на вход - 60-минутный прорыв на 25 над максимумом последнего периода, предельный выход на 30. Вероятность в отчете для триггера GBP 60 MIN 25 составляет 95,2%. Этот тест дал 84% и принес прибыль.

"Чистая производительность этого механизма составила 941 пункт при 84% успешности. Если бы все сделки были заключены на максимуме, то двигатель заработал бы 1832 пункта. Однако в среднем 2,02 пункта на сделку было "отдано" от максимума до точки выхода. Максимальная просадка для этого механизма составила 452 пункта, при этом во время наихудшей полосы убытков было 3 убыточные сделки, а во время наилучшей полосы выигрышей - 25".

Кто-нибудь написал советника для бэктестинга и проверки этого утверждения? Я пытался, но не смог повторить их результаты или даже приблизиться к ним, но я не эксперт. Надеюсь, кто-то из здешних гуру сможет это сделать.

Спасибо,

Maji

 

Нужна помощь в кодировании советника

Здравствуйте, я скачал следующий советник, и он, кажется, работает довольно хорошо. Однако он не применяет Trailingstop, takeprofit и stoploss. не мог бы кто-нибудь исправить код. Любая помощь будет высоко оценена. большое спасибо

//+------------------------------------------------------------------+

//| SMC Autotrader Momentum.mq4 |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

extern double Lots = 1;

extern double InitialStop = 30;

extern double TrailingStop = 20;

extern bool TakeProfitMode = True;

extern int TakeProfit = 10;

extern bool StopLossMode = True;

extern int StopLoss = 25;

datetime BarTime;

//################################################## ###################

int init()

{

//----

//----

return(0);

}

//################################################## ###################

int start()

{

int cnt,total,ticket,MinDist,tmp;

double Spread;

//################################################## ##########################

if(Bars<100){

Print("баров меньше 100");

return(0);

}

//выход, если нет нового бара

if(BarTime == Time[0]) {return(0);}

//новый бар, обновляем бартайм

BarTime = Time[0];

//################################################## #######################################

//~~~~~~~~~~~~~~~~ Разные вещи по настройке~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~

MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);

Spread=(Ask-Bid);

//################################################## #######################################

double SMAP1,SMAP2,MMAP1,MMAP2,LMAP1,LMAP2;

SMAP1=iMA(NULL,0,4,0,MODE_EMA,PRICE_CLOSE,1);

SMAP2=iMA(NULL,0,4,0,MODE_EMA,PRICE_CLOSE,2);

MMAP1=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

MMAP2=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,2);

LMAP1=iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,1);

LMAP2=iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,2);

//################################################## ######################################

//################## ЗАКРЫТИЕ ОРДЕРОВ ################################################## #

// Если ордера в силе, проверьте их закрытие по техническим параметрам LONG & SHORT

//ЗАКРЫТИЕ ДЛИННЫХ ЗАКАЗОВ

total=OrdersTotal();

if(total>0)

{

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if(SMAP2 > MMAP2 && SMAP1 < MMAP2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // закрываем позицию LONG

}}

// ЗАКРЫВАЕМ КОРОТКИЕ ПОЗИЦИИ:

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // проверка наличия символа

{

if(SMAP2 MMAP2)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // закрываем позицию SHORT

}}

} // for loop return

} // закрываем 1-ю позицию if

//################################################## ############################

//################## ORDER TRAILING STOP Adjustment #######################

// ТРЕЙЛИНГ СТОП: LONG

if(0==1) //Это используется для включения и выключения трейлинг-стопа

{

total=OrdersTotal();

if(total>0)

{

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol()

&&

Bid-OrderOpenPrice()> (Point*TrailingStop)

&&

OrderStopLoss()<Bid-(Point*TrailingStop)

)

{OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),1,White);

return(0);}

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//ТРЕЙЛИНГ СТОП: ШОРТ

total=OrdersTotal();

if(total>0)

{

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol()

&&

OrderOpenPrice()-Ask > (Point*TrailingStop)

&&

OrderStopLoss() > Ask+(Point*TrailingStop)

)

{OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(P oint*TrailingStop),OrderTakeProfit(),0,Yellow);

return(0);}

}}

} // торцевая скобка для включения/выключения выключателя

//################################################## ########################################

//~~~~~~~~~~~ END OF ORDER Процедуры закрытия и изменения стоплосса ~~~~~~~~~~~~~~~~~~~~~~~~~~~

//################################################## ########################################

//~~~~~~~~~~~~START of NEW ORDERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//######################### НОВЫЕ ПОЗИЦИИ? ######################################

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

// Проверьте доступную маржу

// ТОЛЬКО ОДИН ОРДЕР НА СИМВОЛ

// Обход ордеров для проверки того, что символ не появляется более одного раза

// Проверьте время, прошедшее с момента последнего входа, чтобы остановить несколько входов на одном и том же баре

if (0==1) // переключатель для включения/выключения проверки истории

{

total=HistoryTotal();

if(total>0)

{

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //Необходимо, чтобы это был следующий день, а не как ниже

if(OrderSymbol()==Symbol()&& CurTime()- OrderCloseTime() < (Period() * 60 )

)

{

return(0);

}}}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

total=OrdersTotal();

if(total>0)

{

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol()) return(0);

}

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if(AccountFreeMargin()<(1000*Lots))

{Print("У нас нет денег. Свободная маржа = ", AccountFreeMargin());

return(0);}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//################################################## #######################################

//ENTRY RULES: LONG

if(SMAP2 MMAP2)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "M axMin Long",16384,0,Orange); //Bid-(Point*(MinDist+2))

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Открыт ордер BUY : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера BUY : ",GetLastError());

return(0);

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//ENTRY RULES: КРАТКИЕ //################################

if(SMAP2 > MMAP2 && SMAP1 < MMAP2)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0," MaxMin Short",16384,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Открыт ордер SELL : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера SELL : ",GetLastError());

return(0);

}

//################################################## ##################################

//############ End of PROGRAM #########################

return(0);

}

Причина обращения: