Kodlama yardımı - sayfa 733

 
tfi_markets :

Merhaba Pro-Coders,

Acaba birisi yardım edebilir mi?

EA'mın bir Alış İşlemi açmasını ve trend değişikliğinde mevcut bir Satış İşlemini kapatmasını istiyorum.

Bunu yapar, ancak yalnızca kâr elde ettiğinde. Pozisyon sabitken trend değiştiğinde

açık, StopLoss'ta çalışır. (Resmi görmek). Bazen çalışıyor ve bazen çalışmıyor.

Neyi iyileştirebilirim?

if (trendNow!=trendPrev)
         if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 55 )
           {
            OpenBuy_  = true ;
            CloseSell_= true ;
           }
         else
         if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 45 )
           {
            OpenSell_= true ;
            CloseBuy_= true ;  
          }
Bu kod kısmı hiçbir şeyi sonuçlandırmak için yeterli değil
 
mladen :
Bu kod kısmı hiçbir şeyi sonuçlandırmak için yeterli değil

Merhaba Mladen,

sorunuma baktığınız için çok teşekkür ederim.

Mevcut Sat ve Al emirlerini kapatacak kodu aşağıda bulabilirsiniz.

Ayrıca, trend doğru yöne işaret ediyorsa yeni bir Al veya Sat emri açmalıdır...

//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)                                          
//| Iterate through open tickets
//+------------------------------------------------------------------+

   for ( int i= 0 ; i<Total; i++)
     {
      dummyResult= OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
       if ( OrderType ()<= OP_SELL && OrderSymbol ()== Symbol ())
        {
         if ( OrderType ()== OP_BUY && OrderMagicNumber ()==MagicNumber)
           {

             for ( int z= OrdersTotal ()- 1 ; z>= 0 ; z--)
              {
               if ( OrderSelect (z, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
                 {
                   if ( OrderType ()== OP_BUY )
                     buy_ticket= OrderTicket ();
                   else
                   if ( OrderType ()== OP_SELL )
                     sell_ticket= OrderTicket ();
                 }

// Close BUY

               if (CloseBuy_== true && buy_ticket!= 0 )
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());

// Open new Sell Order 

if (trendPrev> 0  && (NLD1<NLD2) && RSIfilter< 45 ) OpenSell_= true ;                

 }


// Close SELL
               if (CloseSell_== true && sell_ticket!= 0 )
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());


// Open new Buy Order                

if (trendNow> 0  && (NLD1>NLD2) && RSIfilter> 55 ) OpenBuy_  = true

 

}
              }
 
tfi_markets :

Merhaba Mladen,

sorunuma baktığınız için çok teşekkür ederim.

Mevcut Sat ve Al emirlerini kapatacak kodu aşağıda bulabilirsiniz.

Ayrıca, trend doğru yöne işaret ediyorsa yeni bir Al veya Sat emri açmalıdır...

//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)                                          
//| Iterate through open tickets
//+------------------------------------------------------------------+

   for ( int i= 0 ; i<Total; i++)
     {
      dummyResult= OrderSelect (i, SELECT_BY_POS , MODE_TRADES );
       if ( OrderType ()<= OP_SELL && OrderSymbol ()== Symbol ())
        {
         if ( OrderType ()== OP_BUY && OrderMagicNumber ()==MagicNumber)
           {

             for ( int z= OrdersTotal ()- 1 ; z>= 0 ; z--)
              {
               if ( OrderSelect (z, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==MagicNumber && OrderSymbol ()== Symbol ())
                 {
                   if ( OrderType ()== OP_BUY )
                     buy_ticket= OrderTicket ();
                   else
                   if ( OrderType ()== OP_SELL )
                     sell_ticket= OrderTicket ();
                 }

// Close BUY

               if (CloseBuy_== true && buy_ticket!= 0 )
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Bid ,Slippage*PipMultiplier,MediumSeaGreen);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   Print ( "Error closing Buy #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());

// Open new Sell Order 

if (trendPrev> 0  && (NLD1<NLD2) && RSIfilter< 45 ) OpenSell_= true ;                

 }


// Close SELL
               if (CloseSell_== true && sell_ticket!= 0 )
                 {
                  dummyResult= OrderClose ( OrderTicket (), OrderLots (), Ask ,Slippage*PipMultiplier,DarkOrange);
                   if (EachTickMode) TickCheck = True ;
                   if (!EachTickMode) BarCount = Bars ;
                   Print ( "Error closing Sell #" ,( string ) OrderTicket (), " Error code " ,( string ) GetLastError ());


// Open new Buy Order                

if (trendNow> 0  && (NLD1>NLD2) && RSIfilter> 55 ) OpenBuy_  = true

 

}
              }
Neden döngü içinde bir döngü kullanıyorsunuz? Buna hiç gerek yok. Ondan kurtulun ve kod basitleştirildiğinde, temizlenmesi de daha kolay olacaktır.
 
pls BU GÖSTERGEDEN EA yapmama yardım edecek birine ihtiyacım var
 
mladen :
Neden döngü içinde bir döngü kullanıyorsunuz? Buna hiç gerek yok. Ondan kurtulun ve kod basitleştirildiğinde, temizlenmesi de daha kolay olacaktır.

Merhaba Mladen,

Kodu buna göre değiştirdim, şimdi daha iyi olduğunu mu düşünüyorsun?

Lütfen bir bakar mısınız? Bu kod hala sözde durumda, henüz test edilmedi.

Şimdiden teşekkür ederim!

//+-------------------------------------------------------------------------+
//| Signal close Buy / close Sell / Open new BUY or SELL order when possible    

int PositionIndex;    
int TotalNumberOfOrders;  
TotalNumberOfOrders = OrdersTotal (); // store number of Orders in the variable

for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --) // for loop to loop through all Orders . .   COUNT DOWN TO ZERO !
   {
   if (! OrderSelect (PositionIndex, SELECT_BY_POS , MODE_TRADES )) continue ; // if the OrderSelect fails advance the loop to the next PositionIndex
  
if ( OrderMagicNumber () == MagicNumber   // does the Order's Magic Number match our EA's magic number ?
   && OrderSymbol () == Symbol ()         // does the Order's Symbol match the Symbol our EA is working on ?
   && ( OrderType () == OP_BUY            // is the Order a Buy Order ?
   ||  OrderType () == OP_SELL ))       // or is it a Sell Order ?
  
 if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), Slippage*PipMultiplier,DarkOrange )) //try to close the order
   Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError ());  //if the Order Close failed print some helpful information
              
      if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 52 ) // Check if new entry condition is given
           {
            OpenBuy_= true ;
             }
         else
      if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 42 )
           {
            OpenSell_= true ;
              }
   } // end of For loop        
  
 
tfi_markets :

Merhaba Mladen,

Kodu buna göre değiştirdim, şimdi daha iyi olduğunu mu düşünüyorsun?

Lütfen bir bakar mısınız? Bu kod hala sözde durumda, henüz test edilmedi.

Şimdiden teşekkür ederim!

//+-------------------------------------------------------------------------+
//| Signal close Buy / close Sell / Open new BUY or SELL order when possible    

int PositionIndex;    
int TotalNumberOfOrders;  
TotalNumberOfOrders = OrdersTotal (); // store number of Orders in the variable

for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --) // for loop to loop through all Orders . .   COUNT DOWN TO ZERO !
   {
   if (! OrderSelect (PositionIndex, SELECT_BY_POS , MODE_TRADES )) continue ; // if the OrderSelect fails advance the loop to the next PositionIndex
  
if ( OrderMagicNumber () == MagicNumber   // does the Order's Magic Number match our EA's magic number ?
   && OrderSymbol () == Symbol ()         // does the Order's Symbol match the Symbol our EA is working on ?
   && ( OrderType () == OP_BUY            // is the Order a Buy Order ?
   ||  OrderType () == OP_SELL ))       // or is it a Sell Order ?
  
 if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), Slippage*PipMultiplier,DarkOrange )) //try to close the order
   Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError ());  //if the Order Close failed print some helpful information
              
      if (trendNow> 0 && (NLD1>NLD2) && RSIfilter> 52 ) // Check if new entry condition is given
           {
            OpenBuy_= true ;
             }
         else
      if (trendPrev> 0 && (NLD1<NLD2) && RSIfilter< 42 )
           {
            OpenSell_= true ;
              }
   } // end of For loop        
  
Evet. çok daha iyi :)
 

Mntivana

İşte B&S için EA, 15 uyarı kaldı. Biri bana küresel Bildirgeyi nasıl temizleyeceğimi söyleyebilirse   "'sondaki kâr' beyanı, 62. satırdaki küresel beyanı gizler" gibi   mnt-BuyersSatıcılar EA v1.00.mq4               915          53” Temizleyeceğim.

Ayrıca çalıştırmak için birkaç dosyaya ihtiyacım var.

2016.12.17 16:01:35.347 2016.11.01 00:47   'C:\FXPrograms\Tallinex\MQL4\indicators\4BARS-MTF-BBH 1.06.ex4' dosyasını açamıyor [2]

2016.12.17 16:01:29.815 2016.11.01 00:17   'C:\FXPrograms\Tallinex\MQL4\indicators\BullBearHelper 1.00.ex4' dosyasını açamıyor [2]

2016.12.17 16:01:29.815 2016.11.01 00:17   'C:\FXPrograms\Tallinex\MQL4\indicators\AdaptiveLaguerreFilter.ex4' dosyasını açamıyor [2]

Ve "Eğim Yön Çizgisi"

Bana bildirin

Işın

Dosyalar:
 
traderduke :

tüccar

İlginiz için teşekkürler, indi paketi eklenmiştir, aslında tüm sistem FF'dendir (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sels-ea.html)

gspe üzerinde çalışıyordu ama tüm EA çerçevesinin "funyoo" dan olduğunu düşünüyorum ve yalnızca yeni EA oluşturmak için örnek/model çerçevesi olarak EA koduyla ilgileniyorum, stratejilerinin geri kalanı tahminime göre meyve dolu değil , bundan daha iyisini oluşturabiliriz, şimdilik 100 kat daha iyi göstergelerimiz var :)

Saygılarımızla

Dosyalar:
package.zip  59 kb
 
traderduke :
Ve bundan önce "t" eklersek ( ..... küresel bildirimi gizle beyanı) tüm uyarılar kaldırılacak ama emin değilim doğru mu? ..... bu ipucunu iş parçacığından (https://www.forex-tsd.com/forum/debates-discussions/18543-ea-not-working-under-build-610) ve uzun iki sayfa çaprazından alıyorum aradaki konuşma/tartışma

"crsnapebtinternetcom " ve MLADEN ..... sonra test ettim ve işe yaradı ancak bazı sertifikalara ihtiyacı var :)

Saygılarımızla

 
mntiwana :

tüccar

İlginiz için teşekkürler, indi paketi ektedir, aslında tüm sistem FF'den (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sels-ea.html)

gspe üzerinde çalışıyordu ama tüm EA çerçevesinin "funyoo" dan olduğunu düşünüyorum ve yalnızca yeni EA oluşturmak için örnek/model çerçevesi olarak EA koduyla ilgileniyorum, stratejilerinin geri kalanı tahminime göre meyve dolu değil , bundan daha iyisini oluşturabiliriz, şimdilik 100 kat daha iyi göstergelerimiz var :)

Saygılarımızla

Çocuklar

Funyoos EA'ları, martingale on back testini kullanırken genellikle iyi sonuçlar verdi. bunları kullanırken çok dikkatli olurdum