10pip boşluklu açık siparişler - sayfa 4

 
     //datetime lastTime  = 0;
     double highest_open_price= 0 ;
     //int      lastTicket = -1; // None open.
     int       highest_Ticket = - 1 ; // None open.
     for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
         OrderSelect ( 0 , SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0            // my magic number
    &&  OrderSymbol()       == Symbol ()                 // and my pair.
     //&&  OrderOpenTime()     >=  lastTime
    &&  ?????????()     >=  highest_open_price
    ){
      highest_open_price= ????????();
      highest_Ticket = OrderTicket();
    }

Dediğim gibi - basit ikame

 
GumRai :

Dediğim gibi - basit ikame



teşekkür ederim GumRai : ama diğer sorum şu ki ?????????() OrderOpenTime() olduğuna inanıyorum

şimdi senin gibi erken işaret eden ticaret mantığımla nasıl çalıştırabilirim




      
rsi1= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 1 );
rsi2= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 ); 
     
 if (rsi2> 70 && Ask > High[ 1 ] + ( 10 *pips2dbl) )
  {
      Opn_S= true ;
     } 
     else 
   if (rsi2> 70 && Ask < High[ 1 ] + ( 10 *pips2dbl)) 
      {
      Opn_S= false ;
     }

 Here you give value to Opn_S, but you do nothing with it







   lastTicket= OrderSend ( Symbol (),OP_BUY,mylot(),Ask, 0 , 0 , 0 , "My Comment" ,magic, 0 ,Green);

Burada sipariş açmak için herhangi bir koşul yoktur ve lastTicket değerinin üzerine yazarsınız.

Kodunuzun mantığı yok, birbiriyle tamamen alakasız sadece 3 kod bölümü

================================================= ================================================= =======================




HHH

sonucu AŞAĞIDAKİ kod gibi mi düzenledim diye soruyorum... İstediğim sonucu verdi ama sorun şu ki birden fazla siparişi tek satırda açıyor. yukarıdaki SONUÇ PICS'e bakın

// Orders accounting 
   datetime lastTime  = 0;
    double highest_open_price=0;
    lastTicket = -1; // None open.
    int      highest_Ticket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderOpenTime()     >=  highest_open_price
    ){
      highest_open_price= OrderOpenTime();
      highest_Ticket = OrderTicket();
    }





        
 if(Bid > High[1] && OrderOpenTime()     > highest_open_price )
  {
      Opn_S=true;
     }   
CurrentTime= Time[1];





if(Opn_S==true)               // No opened orders +
        {                                       // criterion for opening Sell
         RefreshRates();                   // Refresh rates     
         lastTicket =OrderSend(Symbol(),OP_SELL,mylot(),Bid,0,0,0,"My Comment",magic,0,Red);
         if( lastTicket >0)
      
           {
            Comment("Opened order Sell ","#",lastTicket);
            return(0);                                 // Exit start()
           }
         if(Fun_Error(GetLastError())==1) // Processing errors
            continue;                             // Retrying
         return(0);                                   // Exit start()
        }
      break;                                    // Exit while
     }
//--------------------------------------------------------------- 9 --------------------------------------
   return(0);                                       // Exit start()
  }


 

Kodunuz birbiriyle alakasız 3 bölüm olduğu için mantık yok.

Yalnızca, birlikte çalışacaklarını umarak, diğer EA'lardan kod bölümlerini kopyalayıp yapıştırdığınız sonucuna varabilirim.

" ?????????() öğesinin OrderOpenTime() olduğuna inanıyorum"

Döngünün ne yaptığı hakkında hiçbir fikrin olmadığını ve onu yazmadığını kanıtlar.

 

GumRai lütfen bu kodumun tamamı esas olarak sadece satışları açar. dediğin gibi tüm bu kopukluklar benim ea'mın birden fazla sipariş açmasına izin vermenin ve daha önce döngüye girmenin bir sonucu olarak geldi sadece basit emirlerimi bu şekilde kestim


{
   int cnt;
   int NumTrades;   // Number of buy and sell trades in this symbol
   
   NumTrades = 0 ;
   for (cnt = OrdersTotal ()- 1 ; cnt >= 0 ; cnt--)
     {
     if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)== true )
       if ( OrderSymbol() != Symbol ()) continue ;
       if ( OrderMagicNumber() != magic)   continue ;
      
       if (OrderType() == OP_BUY )  NumTrades++;
       if (OrderType() == OP_SELL ) NumTrades++;
             
     }
    
  }




then getting my ea to work with my loop by just adding  if(NumTrades==0 && Opn_B==true) // No new orders +

this ensures my ea to open just 1 order on a giving chart but now i want to expand my ea to open more than one order i remove  NumTrades==0 

to let the ea open order unrestricted with my ordersend as little i know now i know we can loop through order for so many reason and when it comes
to the looping for highest order on the chart i dont know that well,but can do it if example is giving. please bear with my little coding knowledge and put me through

below is my ea please assist me 
 
lütfen cevabınızı bekliyorum
 

Bu EA'nın sadece kötü yazılmış, eksik veya kod parçaları kaldırılmış çalışan bir EA olup olmadığından emin değilim.

Genelde satıyor diyorsunuz, ben hiç alım açabileceğini düşünmüyorum.

Bir satın alma açmak için ana koşul

 if (Opn_B== true )

Opn_B'nin kodda göründüğü diğer tek yer, kodda

Opn_B= false

Yani doğru olarak ayarlanabilecek hiçbir yer yok.

tesadüfen

   while ( true ) // Orders closing loop

Yalnızca siparişleri açan bir döngü - harika yorumlar.

   double highest_open_price= 0 ;
   int     highest_Ticket=- 1 ;
   for ( int pos= OrdersTotal ()- 1 ; pos>= 0 ; pos--)
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()== 0            // my magic number
         && OrderSymbol()== Symbol () // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
GumRai :

EA'nın sadece kötü yazılmış, eksik veya kod parçaları kaldırılmış çalışan bir EA olup olmadığından emin değilim.

Genelde satıyor diyorsunuz, ben hiç alış açabileceğini görmüyorum.

Bir satın alma açmak için ana koşul

Opn_B'nin kodda göründüğü diğer tek yer, kodda

Yani doğru olarak ayarlanabilecek hiçbir yer yok.

tesadüfen

Yalnızca siparişleri açan bir döngü - harika yorumlar.

kodumu incelediğiniz ve öneri ve düzeltmeleri tespit ettiğiniz için teşekkürler

GumRai : bu yüzden sana o zaman birçok insanın anlamayabileceğini söyledim ama ben anlıyorum ve sen anlayabiliyorsun çünkü kodu çok iyi anlıyorsun,

ayrıca açık sadece satış yapmak için bir nedenim var, bu istekle ilgili sorunum beni zorladı ama çözüm bulduğumda her şeyi yeniden düzenleyeceğim.

ea'ya bak, kapatmak için koşulları kaldırıyorum ve ayrıca ea'nın eksik görünmesini sağlayan koşulu satın alıyorum

.neden bu koşulları yerine getirdiğinden emin olmak istiyorum......

mevcut grafik sembolündeki en yüksek açık fiyat ve eğer al/aç ise 10pip aşağıdaysa 10pip üzerinde açın.

Kapatma koşullarını kaldırıyorum çünkü kodun diğer koşul yerine koyulmadan hemen önce olduğundan emin olmak için test yaparken işlemleri kapatmak için geriye dönük test yapmak istemiyorum.

Çözüme ulaşınca uygun kapanış koşuluyla yemeğimi tekrar düzenleyeceğim, bu yüzden yardım etmene rağmen bu sorunda bana yardım etmeni istiyorum.




 

Peki, size açık fiyatı en yüksek olan emri bulabilmeniz için kodu verdim.

Fiyatın bu değerin en az 10 pip üzerinde olup olmadığını kontrol etmek ve öyleyse başka bir emir açmak artık basit bir mesele.

 

lütfen GumRai : döngüyü ea'ya nasıl yerleştirebilirim, çünkü yaptığım yol backtest'te işe yaramadı ......

nasıl yaptım? ea'daki bazı koşullarımı yazmak için en yüksek_open_price ve en yüksek_Ticket kullandım ama geri testte istediğim sonucu vermedi

belki bir şey eksik?


   double highest_open_price= 0 ;
   int     highest_Ticket=- 1 ;
   for ( int pos= OrdersTotal ()- 1 ; pos>= 0 ; pos--)
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES) // Only my orders w/
         && OrderMagicNumber()== 0            // my magic number
         && OrderSymbol()== Symbol () // and my pair.
         && OrderOpenPrice()>=highest_open_price)
        {
         highest_open_price=OrderOpenPrice();
         highest_Ticket=OrderTicket();
        }
 
Evet, kodu göstermeyi kaçırıyorsunuz. Neyi yaptığınızı/yapmadığınızı nasıl bileceğiz?
Neden: