EA N7S_AO_772012 - sayfa 9

 
Normalde optimize edilmiş bir trollü bir versiyonum var ...
 

Bir trol "ilmiği" asın. Geçen haftanın sonuçlarına ve setlerine göre sonuçlar fena değil. Düşüş azalır. Artan kâr.

Ölçek...

Kod düzeltme

 void trl ( ) {
      total = OrdersTotal ( ) ; spread = MarketInfo ( Symbol ( ) , MODE_SPREAD ) ;
  for (  i = total - 1 ; i > = 0 ; i - - ) 
     { OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ; MN = OrderMagicNumber ( ) ;
       if ( OrderSymbol ( ) = = Symbol ( ) & & MN > = 772012000 & & MN < = 772012199 ) 
         {  if ( MN = = 772012055 ) { sl = slx ; tp = tpx * slx ; mn = mnx1 ; }
            if ( MN = = 772012155 ) { sl = sly ; tp = tpy * sly ; mn = mny1 ; }
            if ( MN = = 772012011 ) { sl = slX ; tp = tpX * slX ; mn = mnX1 ; }
            if ( MN = = 772012111 ) { sl = slY ; tp = tpY * slY ; mn = mnY1 ; }
//Правим SL в зависимости от прибыли (от растояния в пипсах. Первый шаг = sl. ВТорой sl + sl/2 третий sl+ sl/2 + sl / 3 и т.п. 
         
           int prevticket = OrderTicket ( ) ; if ( OrderType ( ) = = OP_BUY ) 
             { if ( DayOfWeek ( ) = = 5 & & Hour ( ) > = 22 )  { OrderClose ( prevticket , OrderLots ( ) , Bid , 3 , Red ) ; } 
              if ( Bid > ( OrderStopLoss ( ) + ( sl * 2  + spread ) * Point ) ) 
                 { if ( BTS ( ) < 0 ) { OrderClose ( prevticket , OrderLots ( ) , Bid , 3 , Red ) ; } 
                   else  
                   TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } }
                   //Старый вариант
                   //{ OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point,0, 0, Blue);}}} 
           else { if ( DayOfWeek ( ) = = 5 & & Hour ( ) > = 22 ) { OrderClose ( prevticket , OrderLots ( ) , Ask , 3 , Blue ) ; } 
                  if ( Ask < ( OrderStopLoss ( ) - ( sl * 2 + spread ) * Point ) ) 
                     { if ( BTS ( ) > 0 ) 
                           { OrderClose ( prevticket , OrderLots ( ) , Ask , 3 , Blue ) ; } 
                     else TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } }
                     //{ OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 0, 0, Blue);}}}
          return ( 0 ) ; } } }
 

ilmik kendisi

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

 void TrailingUdavka ( int ticket , int trl_dist_1 , int level_1 , int trl_dist_2 , int level_2 , int trl_dist_3 )
   { 
   double newstop = 0 ; // новый стоплосс
   double trldist ; // расстояние трейлинга (в зависимости от "пройденного" может = trl_dist_1, trl_dist_2 или trl_dist_3)

   // проверяем переданные значения
   if ( ( trl_dist_1 < MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ) | | ( trl_dist_2 < MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ) | | ( trl_dist_3 < MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ) | | 
   ( level_1 < = trl_dist_1 ) | | ( level_2 < = trl_dist_1 ) | | ( level_2 < = level_1 ) | | ( ticket = = 0 ) | | ( ! OrderSelect ( ticket , SELECT_BY_TICKET , MODE_TRADES ) ) )
      {
      Print ( "Трейлинг функцией TrailingUdavka() невозможен из-за некорректности значений переданных ей аргументов." ) ;
      return ( 0 ) ;
      } 
   
   // если длинная позиция (OP_BUY)
   if ( OrderType ( ) = = OP_BUY )
      {
      // если профит <=trl_dist_1, то trldist=trl_dist_1, если профит>trl_dist_1 && профит<=level_1*Point ...
      if ( ( Bid - OrderOpenPrice ( ) ) < = level_1 * Point ) trldist = trl_dist_1 ;
      if ( ( ( Bid - OrderOpenPrice ( ) ) > level_1 * Point ) & & ( ( Bid - OrderOpenPrice ( ) ) < = level_2 * Point ) ) trldist = trl_dist_2 ;
      if ( ( Bid - OrderOpenPrice ( ) ) > level_2 * Point ) trldist = trl_dist_3 ; 
            
      // если стоплосс = 0 или меньше курса открытия, то если тек.цена (Bid) больше/равна дистанции курс_открытия+расст.трейлинга
      if ( ( OrderStopLoss ( ) = = 0 ) | | ( OrderStopLoss ( ) < OrderOpenPrice ( ) ) )
         {
         if ( Bid > ( OrderOpenPrice ( ) + trldist * Point ) )
         newstop = Bid -  trldist * Point ;
         }

      // иначе: если текущая цена (Bid) больше/равна дистанции текущий_стоплосс+расстояние трейлинга, 
      else
         {
         if ( Bid > ( OrderStopLoss ( ) + trldist * Point ) )
         newstop = Bid -  trldist * Point ;
         }
      
      // модифицируем стоплосс
      if ( newstop > OrderStopLoss ( ) )   
      OrderModify ( ticket , OrderOpenPrice ( ) , newstop , OrderTakeProfit ( ) , OrderExpiration ( ) ) ;
      }
      
   // если короткая позиция (OP_SELL)
   if ( OrderType ( ) = = OP_SELL )
      { 
      // если профит <=trl_dist_1, то trldist=trl_dist_1, если профит>trl_dist_1 && профит<=level_1*Point ...
      if ( ( OrderOpenPrice ( ) - ( Ask + MarketInfo ( Symbol ( ) , MODE_SPREAD ) * Point ) ) < = level_1 * Point ) trldist = trl_dist_1 ;
      if ( ( ( OrderOpenPrice ( ) - ( Ask + MarketInfo ( Symbol ( ) , MODE_SPREAD ) * Point ) ) > level_1 * Point ) & & ( ( OrderOpenPrice ( ) - ( Ask + MarketInfo ( Symbol ( ) , MODE_SPREAD ) * Point ) ) < = level_2 * Point ) ) trldist = trl_dist_2 ;
      if ( ( OrderOpenPrice ( ) - ( Ask + MarketInfo ( Symbol ( ) , MODE_SPREAD ) * Point ) ) > level_2 * Point ) trldist = trl_dist_3 ; 
      
      // если стоплосс = 0 или меньше курса открытия, то если тек.цена (Ask) больше/равна дистанции курс_открытия+расст.трейлинга
      if ( ( OrderStopLoss ( ) = = 0 ) | | ( OrderStopLoss ( ) > OrderOpenPrice ( ) ) )
         {
         if ( Ask < ( OrderOpenPrice ( ) - ( trldist + MarketInfo ( Symbol ( ) , MODE_SPREAD ) ) * Point ) )
         newstop = Ask + trldist * Point ;
         }

      // иначе: если текущая цена (Bid) больше/равна дистанции текущий_стоплосс+расстояние трейлинга, 
      else
         {
         if ( Ask < ( OrderStopLoss ( ) - ( trldist + MarketInfo ( Symbol ( ) , MODE_SPREAD ) ) * Point ) )
         newstop = Ask +  trldist * Point ;
         }
               
       // модифицируем стоплосс
      if ( newstop > 0 )
         {
         if ( ( OrderStopLoss ( ) = = 0 ) | | ( OrderStopLoss ( ) > OrderOpenPrice ( ) ) )
         OrderModify ( ticket , OrderOpenPrice ( ) , newstop , OrderTakeProfit ( ) , OrderExpiration ( ) ) ;
         else
            {
            if ( newstop < OrderStopLoss ( ) )   
            OrderModify ( ticket , OrderOpenPrice ( ) , newstop , OrderTakeProfit ( ) , OrderExpiration ( ) ) ;
            }
         }
      }      
   }
 
Casper писал(а) >>

Fikir fena değil, yine de işe yarar :-)

Casper düzeltme lütfen burada

TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } }

herhangi bir şekilde veya kendi takdirinize bağlı olarak

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, 2*sl, sl/4);}}


Karların çalışmasına izin vermeyi ve kayıpları azaltmayı tercih ettiğimi zaten söyledim, bu yüzden takip konusunda temkinliyim.
Noose IMHO en iyi yol değil, ama muhtemelen birileri bundan hoşlanacak.

Takip etme ihtiyacına geldiğimde, öncelikle bunu fraktallarla yapacağım ve ayrıca piyasadan basitçe kapatacağım.
Ve bir bilgeliğe de saygı duyuyorum, eğer fiyat uzun süre doğru yönde gitmezse, kesinlikle aleyhinize olacaktır!!
Herkese iyi şanslar ve kazançlar!!!
not
Casper daha yakından bakın, "montaj etkisi" ve "aptallar" hakkında hatırlayın

 
Bu haftanın son iki gününde, demoda tam olarak test etmek mümkün olmadı (Alpari'nin beşinci işareti "arıza"dır)) Bugün gece yarısı dokuz enstrüman için düzeltilmiş ve eklenmiş yazılımı kurdum.
Testlere göre, bu iki gün geçen haftadan daha iyi geçti. Öz sermaye 750 dolar.
Liderler Euro +354$ Kablo +257$ Frank (ki bu şaşırtıcıdır) +$176 Yen -90$ EURYen -162$ ve Kanada biraz (ki bu normaldir) -15$ Diğerleri: kivi +89$, poundyen +77$ ve EURGBP +59$
 
SHOOTER777 >> :

Fikir fena değil, yine de işe yarar :-)

Casper düzeltme lütfen burada

TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } }

her şekilde veya kendi takdirine bağlı olarak

TrailingUdavka(OrderTicket(), sl, sl+sl/2, sl/2, 2*sl, sl/4);}}


Karların çalışmasına izin vermeyi ve kayıpları azaltmayı tercih ettiğimi zaten söyledim, bu yüzden takip konusunda temkinliyim.
Stranglehold IMHO en iyi yol değil, ancak birileri muhtemelen bundan hoşlanacak.

Takip etme ihtiyacına geldiğimde, öncelikle bunu fraktallarla yapacağım ve ayrıca piyasadan basitçe kapatacağım.
Ve bir bilgeliğe de saygı duyuyorum, eğer fiyat uzun süre doğru yönde gitmezse, kesinlikle aleyhinize olacaktır!!
Herkese iyi şanslar ve kazançlar!!!
not
Casper daha yakından bakın, "montaj etkisi" ve "aptallar" hakkında hatırlayın

Fiyat ne kadar ileri giderse, geri alma olasılığı o kadar yüksek olur. Ve kâr kaybetmeyin. Geçen haftaki setlerde euroyen ve poundtoyen'den kurtulmayı başardım. Her iki çiftin de daha yüksek karı ve daha düşük bir düşüşü var.

Çağrı gelince - katılıyorum. Yanlış. Bir de değişmesi gereken bir durum var. Aksi takdirde başlangıçta çok büyük bir adım atıyor. Böyle bir şey galiba

            if ( Bid > ( OrderStopLoss ( ) + ( sl * 2  + spread ) * Point ) | | true ) 
                 { if ( BTS ( ) < 0 ) { OrderClose ( prevticket , OrderLots ( ) , Bid , 3 , Red ) ; } 
                   else  
                   TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } }
                   //{ OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point,0, 0, Blue);}}} 
           else { if ( DayOfWeek ( ) = = 5 & & Hour ( ) > = 22 ) { OrderClose ( prevticket , OrderLots ( ) , Ask , 3 , Blue ) ; } 
                  if ( Ask < ( OrderStopLoss ( ) - ( sl * 2 + spread ) * Point ) | | true ) 
                     { if ( BTS ( ) > 0 ) 
                           { OrderClose ( prevticket , OrderLots ( ) , Ask , 3 , Blue ) ; } 
                     else 
                     TrailingUdavka ( OrderTicket ( ) , sl , sl , sl + sl / 2 , sl / 2 , sl / 4 ) ; } } 
                     //{ OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 0, 0, Blue);}}}

Şimdi bloğu yeniden yapmak tembellik. || belirtme yöntemiyle karşılık gelen if-s'yi öldürdü doğru. Tekrar geri dönmek kolay olacak..

"Montaj etkisi" ve çaydanlık gelince. Eskiden Delphi C++ ve C#'da ciddi bir programcıydım. Ama bu muhtemelen 5-6 yıl önceydi. Bu yüzden ben de berbat edebilirim, yetenek ne yazık ki kayboldu. Bu yüzden kodu gönderiyorum.

Geliştirici forumuna geri dönelim...

 

Raporlara göre, yazarın hünerli ellerindeki araç ÇALIŞIYOR gibi görünüyor.

Belki gerçek ya da en azından mikro-gerçek zamanı?

 
goldtrader >> :

Raporlara göre, yazarın hünerli ellerindeki araç ÇALIŞIYOR gibi görünüyor.

Belki gerçek ya da en azından mikro-gerçek zamanı?

Gerçek bir sentim var...

 
Casper >> :

Gerçek bir sentim var...

Devlet bağlanabilir mi?

 
goldtrader писал(а) >>

Raporlara göre, yazarın hünerli ellerindeki araç ÇALIŞIYOR gibi görünüyor.

Belki gerçek ya da en azından mikro-gerçek zamanı?

Acele etmeyin!!!

Broker uykuda değilse, danışman gerçek hayatta düzgün çalışmayacaktır.

Veya en azından terminali sürekli olarak izleyebilmelisiniz.

EA, alıntılar vb. ile nasıl çalışacağını bilmiyor.

Çok fazla enstrüman koyarsanız, durumu nasıl kontrol edeceğini ve ticaret akışlarını nasıl ayıracağını bilmiyor.

Haber bültenleri ve keskin spekülatif dalgalanmalar sırasında çalışırken bir yasak bayrağı daha eksik,

ve aynı çubuk üzerinde aynı yönde ticaret yasağı.

Arızalara karşı koruma yoktur ve giriş parametrelerinin doğruluğu kontrol edilmez.

Demomda giriş parametreleri birkaç kez sıfırlandı.

Nedir - komisyoncunun şakaları - Alpari'den aldığım terminal veya sadece aksaklıklar.

Evet, başka bir şey eksik.