//+-----------------------------------------------------------------------+//| Gena.mq4 |//+-----------------------------------------------------------------------+// Описание ТС// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня// SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, // единственная оговорка не более 1 позиции в день в переменной LastTradeTime // если в ней нет необходимост смело сносите /RomanS/// 2.// 3.// 4.// 5.// Внешние переменныеexterndouble TakeProfit =4000;externstring vybor_perioda ="1;5;15;30;60;240;1440";externint period =1440;externint Fractals_TF =240;//externdouble Lots =0.1;// Глобальные переменныеint LastTradeTime =0;// Время последней открытой сделки//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+// Поехали... :)int start(){//+----фсяки разны значения, индикаторы и т.д. и т.п. :)double SL=0,TP=0,
Spread=Ask-Bid,
StopLevel=Point*MarketInfo(Symbol(),MODE_STOPLEVEL);int per;switch(period){case1440: per=PERIOD_D1;break;case240: per=PERIOD_H4;break;case60: per=PERIOD_H1;break;case30: per=PERIOD_M30;break;case15: per=PERIOD_M15;break;case5: per=PERIOD_M5;break;case1: per=PERIOD_M1;break;default: per=0;break;}
HighD1=iHigh(Symbol(),per,1),
LowD1=iLow(Symbol(),per,1);//----Критерии открытия позицийbool Open_Bay=false,Open_Sell=false;if(Bid> HighD1+0.5*Point) Open_Bay =true;if(Bid< LowD1-0.5*Point) Open_Sell =true;//----Проверяем нужно ли торговать :)// Закрытие позиции// Модификация ордераint Ticket,cnt,Total=0;for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS);if(OrderSymbol()==Symbol()){
Total++;if(OrderType()==OP_BUY)// long position is opened{
SL=LowerFractal();if(SL-0.5*Point>OrderStopLoss()&& SL-0.5*Point>OrderOpenPrice()&&Bid-SL>StopLevel+0.5*Point){OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0);return(0);}}//--------if(OrderType()==OP_SELL)// Short position is opened{
SL=UpperFractal();if(SL+0.5*Point<OrderStopLoss()&& SL+0.5*Point<OrderOpenPrice()&& SL-Ask>StopLevel+0.5*Point){OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0);return(0);}}}}//+----Открытие позицийint TradeTime=TimeDay(TimeCurrent());if(Total<1&& LastTradeTime!=TradeTime){if(Open_Bay){//SL = LowerFractal();
SL =iLow(NULL,PERIOD_D1,0);if(TakeProfit>0) TP =Ask+ TakeProfit*Point;if(Bid-SL<StopLevel-0.5*Point)return(0);// проверяем минимальный уровень стопов//Alert("Пробуем открыть Buy ",SYMBOL, " по ",ASK, SL, TP);
Ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,20,SL,TP);if(Ticket >0){//Alert ("Открыт ордер Buy ",Ticket);
LastTradeTime=TradeTime;// задаем время сделки, чтобы сегодня больше не торговать }return(0);}//+----if(Open_Sell){//SL = UpperFractal()+Spread;
SL =iHigh(NULL,PERIOD_D1,0)+Spread;if(TakeProfit>0) TP =Bid- TakeProfit*Point;if(SL-Ask<StopLevel-0.5*Point)return(0);// проверяем минимальный уровень стопов
Ticket =OrderSend(Symbol(),OP_SELL,Lots,Bid,20,SL,TP);if(Ticket >0){//Alert ("Открыт ордер Sell ",Ticket);
LastTradeTime=TradeTime;// задаем время сделки, чтобы сегодня больше не торговать}}}return(0);}//+------------------------------------------------------------------+double LowerFractal(){for(int i=3;i<iBars(NULL,Fractals_TF)-3;i++){double Fractal=iFractals(NULL,Fractals_TF,MODE_LOWER,i);if(Fractal!=0.0)return(Fractal);}}//+-----double UpperFractal(){for(int i=3;i<iBars(NULL,Fractals_TF)-3;i++){double Fractal=iFractals(NULL,Fractals_TF,MODE_UPPER,i);if(Fractal!=0.0)return(Fractal);}}//+-----
Aşağıdaki şeylere güvenmenin doğru olduğunu düşünüyorum:
- kırılma aralığındaki hareketin doğası ve kırılmadan önceki ruh hali (ki bu daha az önemlidir)
- genel bir eğilim, muhtemelen daha geniş bir zaman diliminde.
İkincisi ile ilgili olarak, Parabolik'ten dans etmeyi deneyin, yardımcı olabilir.
Yazdı ... Sonuç orijinalinden daha kötüydü .... prof. faktör optimizasyondan sonra sadece 1.31 :(
Bence bu sistemde osilatör kullanmak daha uygun
//+-----------------------------------------------------------------------+//| Крокодил ГЕНА.mq4 |//| Крокодил ГЕНА |//+-----------------------------------------------------------------------+// Описание ТС// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня// SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, // единственная оговорка не более 1 позиции в день в переменной LastTradeTime // если в ней нет необходимости смело сносите /RomanS/// 2. Добавил к условию открытия трендовый параболик + трал. стоп по нему же на М5. // Результат оказался хуже :( /RomanS/// 3.// 4.// 5.// Внешние переменныеexterndouble TakeProfit =900;externdouble SAR_steep =0.0005;externdouble Lot =1;externstring SYMBOL ="EURUSD";// Глобальные переменныеint LastTradeTime =0;// Время последней открытой сделки// Поехали... :)int start (){int Ticket ;double BID ,
ASK ,
SL =0,
TP =0;bool Trade =true,
Open_Bay =false,
Open_Sell =false;// Проверяем можно ли торговатьif( Trade ==true){// Критерии открытия позиций
ASK =MarketInfo( SYMBOL ,10);
BID =MarketInfo( SYMBOL ,9);if( BID >iHigh( SYMBOL ,PERIOD_D1,1)&&iSAR( SYMBOL ,PERIOD_M5, SAR_steep ,0.2,0)< BID ) Open_Bay =true;if( BID <iLow( SYMBOL ,PERIOD_D1,1)&&iSAR( SYMBOL ,PERIOD_M5, SAR_steep ,0.2,0)> BID ) Open_Sell =true;// Открытие позицийif( Open_Bay ==true&&OrdersTotal()==0&&TimeDay(TimeCurrent())!= LastTradeTime ){RefreshRates();
SL =iLow( SYMBOL ,PERIOD_D1,0);
TP = ASK + TakeProfit *Point;if(( ASK - SL )/Point<MarketInfo( SYMBOL ,14))return;// проверяем минимальный уровень стоповAlert("Пробуем открыть Buy ", SYMBOL ," по ", ASK , SL , TP );
Ticket =OrderSend( SYMBOL ,OP_BUY, Lot , ASK ,20, SL , TP );if( Ticket >0){Alert("Открыт ордер Buy ", Ticket );
LastTradeTime =TimeDay(TimeCurrent());// задаем время сделки, чтобы сегодня больше не торговать return;}}if( Open_Sell ==true&&OrdersTotal()==0&&TimeDay(TimeCurrent())!= LastTradeTime ){RefreshRates();
SL =iHigh( SYMBOL ,PERIOD_D1,0);
TP = BID - TakeProfit *Point;if(( SL - BID )/Point<MarketInfo( SYMBOL ,14))return;// проверяем минимальный уровень стопов
Ticket =OrderSend( SYMBOL ,OP_SELL, Lot , BID ,20, SL , TP );if( Ticket >0){Alert("Открыт ордер Sell ", Ticket );
LastTradeTime =TimeDay(TimeCurrent());// задаем время сделки, чтобы сегодня больше не торговатьreturn;}return;}// Закрытие позиции// .......// Модификация ордераfor(int i =0; i <=OrdersTotal(); i ++){if(OrderSelect( i , SELECT_BY_POS )==true){if(OrderSymbol()!= SYMBOL )continue;if(OrderType()==0){double TralStop =iSAR( SYMBOL ,PERIOD_M5, SAR_steep ,0.2,0);if( SL < TralStop ){
SL = TralStop ;bool Ans =OrderModify(OrderTicket(),OrderOpenPrice(), SL ,OrderTakeProfit(),0);if( Ans ==true){// Alert ("Ордер Bay ","EURUSD"," №",Ticket," модифицирован. Новый Stop Loss ", SL); break;}}}if(OrderType()==1){
TralStop =iSAR( SYMBOL ,PERIOD_M5, SAR_steep ,0.2,0);if( SL > TralStop ){
SL = TralStop ;if(( SL - ASK )/Point<MarketInfo("EURUSD",14))break;
Ans =OrderModify(OrderTicket(),OrderOpenPrice(), SL ,OrderTakeProfit(),0);if( Ans ==true){// Alert ("Ордер Sell ","EURUSD"," №",Ticket," модифицирован. Новый Stop Loss ", SL); break;}}}}}}return;}
Genel olarak burada süper bir sistem yazmaya çalışmıyorum... Tüm bunlara neden başladığımı şubenin başında anlatmıştım.
Bir şeyi kontrol etmek istedim, yani. Asıl amacım (başta söylemek istemedim ama şubenin çıkacağını hissediyorum) tarihsel süreçte (diyelim ki son yarım yılda) geliştirmekte olduğunuz sistemin nasıl hareket edeceğini öğrenmek. geçmiş dönemler. Başlangıçta bunun uzun vadede 50/50 bir sistem olduğunu söylemiştim, yani. 2009'da sistemden çekiliyor. maksimum kârlılığa, geçmişte daha mı iyi çalışacak... Diyelim ki pr.f. 2.0 veya üstü... örneğin 2000'den daha iyi çalışır mı? ???
Bugün ne kadar iyi performans gösterirse, uzun vadede o kadar kötü performans göstereceğini tahmin ediyorum (ve sadece tahmin ediyorum!!!) Onlar. bugün maksimumu zorluyoruz. kar, ancak tarihte bu sistem artık 1.0 vermeyecek, ancak muhtemelen 0,9'a düşecek
Ama bunlar sadece varsayımlar... Henüz bir şey kanıtlamaya çalışmıyorum .... Dürüst olmak gerekirse, umarım yanılırım.
Dürüst olmak gerekirse, sistemin geçmişte nasıl davranacağını anlamaya çalışmanın nedenini anlamıyorum. Geleceğe bakmak daha iyi. Pazar değişiyor ve etrafta dolaşmak yok. Hatta
Я предпологаю (и только предпологаю!!!), что чем лучше она будет работать сегодня, тем хуже она отработает в долгосрочке.
peki ya ne?
Şahsen benim varsayımım (ve sadece varsayım))) bağımlılığın olmadığı ve bunu bir sistem için, hatta bin sistem için söylediğim (hatta kanıtladığım), bunun kesinlikle tüm sistemler için doğal olacağı bir gerçek değil.
Öyle güzel bir söz vardır ki mutluluğun olmadığı yerde aramayın.
Şahsen, benim varsayımım (ve sadece varsayım))) bağımlılığın olmadığı
Emin olmak istediğim şey bu...
Tarihte 50/50 çalışan bir danışman alın ve ek göstergeler, osilatörler ve diğer araçlarla tamamlayın. Kısa bir süre (yarım yıl) test edin ve ne olduğunu görün...
Swan ve Gince'e ilgi gösterdikleri için çok teşekkürler. Ve sen daha iyi olurdunsayfuji bir şey önerirdi.... örneğin, benzerlerine göre olmayan bir pozisyonun nasıl kapatılacağı. belki mantıklı olur...
Sadece önceki günün Yüksek/Düşükünü sabit bir kârla kırarak ve bugünün Yüksek/Düşükünde bir duraklama ile açılıyoruz. Neden tam olarak? Evet, çünkü öncelikle böyle bir sistem tek bir gösterge kullanmaz ...
Benim için tek şey... benim için yön önceki mum tarafından seçilir ve durak iki mumdan daha küçüğü tarafından yerleştirilir - mevcut/önceki yüksek/düşük..
Benim için tek şey... benim için yön önceki mum tarafından seçilir ve durak iki mumdan daha küçük olanı tarafından yerleştirilir - mevcut/önceki yüksek/düşük..
Harika fikir ... denemeye ve ondan dans etmeye değer ...
Linke baktım süre çok az.. 2000'den beri denemediniz mi? belki aynı sorun .... 50/50???
gün açabilir ve ardından daha küçük TF'nin alt fraktallarındaki durağı yukarı çekebilirsiniz.
etrafında oynadı)
fraktallar tarafından sonuna eklendi.
biraz daha ve kase :D
Sadece muhtemelen Fractals_TF adlandırılmalıdır
Sadece muhtemelen Fractals_TF adlandırılmalıdır
Aşağıdaki şeylere güvenmenin doğru olduğunu düşünüyorum:
- kırılma aralığındaki hareketin doğası ve kırılmadan önceki ruh hali (ki bu daha az önemlidir)
- genel bir eğilim, muhtemelen daha geniş bir zaman diliminde.
İkincisi ile ilgili olarak, Parabolik'ten dans etmeyi deneyin, yardımcı olabilir.
Yazdı ... Sonuç orijinalinden daha kötüydü .... prof. faktör optimizasyondan sonra sadece 1.31 :(
Bence bu sistemde osilatör kullanmak daha uygun
Genel olarak burada süper bir sistem yazmaya çalışmıyorum... Tüm bunlara neden başladığımı şubenin başında anlatmıştım.
Bir şeyi kontrol etmek istedim, yani. Asıl amacım (başta söylemek istemedim ama şubenin çıkacağını hissediyorum) tarihsel süreçte (diyelim ki son yarım yılda) geliştirmekte olduğunuz sistemin nasıl hareket edeceğini öğrenmek. geçmiş dönemler. Başlangıçta bunun uzun vadede 50/50 bir sistem olduğunu söylemiştim, yani. 2009'da sistemden çekiliyor. maksimum kârlılığa, geçmişte daha mı iyi çalışacak... Diyelim ki pr.f. 2.0 veya üstü... örneğin 2000'den daha iyi çalışır mı? ???
Bugün ne kadar iyi performans gösterirse, uzun vadede o kadar kötü performans göstereceğini tahmin ediyorum (ve sadece tahmin ediyorum!!!) Onlar. bugün maksimumu zorluyoruz. kar, ancak tarihte bu sistem artık 1.0 vermeyecek, ancak muhtemelen 0,9'a düşecek
Ama bunlar sadece varsayımlar... Henüz bir şey kanıtlamaya çalışmıyorum .... Dürüst olmak gerekirse, umarım yanılırım.
Dürüst olmak gerekirse, sistemin geçmişte nasıl davranacağını anlamaya çalışmanın nedenini anlamıyorum. Geleceğe bakmak daha iyi. Pazar değişiyor ve etrafta dolaşmak yok. Hatta
Я предпологаю (и только предпологаю!!!), что чем лучше она будет работать сегодня, тем хуже она отработает в долгосрочке.
peki ya ne?
Şahsen benim varsayımım (ve sadece varsayım))) bağımlılığın olmadığı ve bunu bir sistem için, hatta bin sistem için söylediğim (hatta kanıtladığım), bunun kesinlikle tüm sistemler için doğal olacağı bir gerçek değil.
Öyle güzel bir söz vardır ki mutluluğun olmadığı yerde aramayın.
Şahsen, benim varsayımım (ve sadece varsayım))) bağımlılığın olmadığı
Emin olmak istediğim şey bu...
Tarihte 50/50 çalışan bir danışman alın ve ek göstergeler, osilatörler ve diğer araçlarla tamamlayın. Kısa bir süre (yarım yıl) test edin ve ne olduğunu görün...
Swan ve Gince'e ilgi gösterdikleri için çok teşekkürler. Ve sen daha iyi olurdun sayfuji bir şey önerirdi.... örneğin, benzerlerine göre olmayan bir pozisyonun nasıl kapatılacağı. belki mantıklı olur...
Sadece önceki günün Yüksek/Düşükünü sabit bir kârla kırarak ve bugünün Yüksek/Düşükünde bir duraklama ile açılıyoruz. Neden tam olarak? Evet, çünkü öncelikle böyle bir sistem tek bir gösterge kullanmaz ...
Benim fikrim %100 aynı)) sadece H4 Tester sonuçlarında..
Benim için tek şey... benim için yön önceki mum tarafından seçilir ve durak iki mumdan daha küçüğü tarafından yerleştirilir - mevcut/önceki yüksek/düşük..
Benim fikrim %100 aynı)) sadece H4 Tester sonuçlarında..
Benim için tek şey... benim için yön önceki mum tarafından seçilir ve durak iki mumdan daha küçük olanı tarafından yerleştirilir - mevcut/önceki yüksek/düşük..
Harika fikir ... denemeye ve ondan dans etmeye değer ...
Linke baktım süre çok az.. 2000'den beri denemediniz mi? belki aynı sorun .... 50/50???