TP'yi 5 pip'in altına nasıl ayarlarım? - sayfa 5

 
Bu şekilde mi demek istiyorsun?
 extern double TPforBuys= 1 ;
extern double TPforSells= 1 ;
extern double TimeForEA= 120 ;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
for ( int a= OrdersTotal ()- 1 ;a>= 0 ;a--)

double TPbuy = TPforBuys / 10000 ;
if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_BUY && OrderSymbol ()== Symbol () )
double TPB= OrderOpenPrice ()+ TPbuy;

// Close Buys
if (Bid>TPB)
{
   
       if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_BUY && TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 )  &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }



double TPsell = TPforSells / 10000 ;
if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_SELL && OrderSymbol ()== Symbol () )
double TPS= OrderOpenPrice ()- TPsell;



// Close Sells
if (Ask<TPS)
{
   
       if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
       OrderType ()==OP_SELL &&   TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 ) &&
       OrderSymbol ()== Symbol () )
         if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
             Print ( "OrderClose failed, error: " , GetLastError ());
            }


return ( 0 );
}
 
ats :
Bu şekilde mi demek istiyorsun?
Bilmiyorum . . . bu istediğini yapıyor mu?
 
RaptorUK :
Bilmiyorum . . . bu istediğini yapıyor mu?
Hayır. Olmaz! Yine doğru değil!
 
Belki tam olarak ne yapmaya çalıştığınızı açıklayabilirsiniz? benim yararıma, onewithzachy'nin yararına ve tabii ki, sizin yararınıza.
 

Elbette! üzgünüm! Bunun hakkında düşünmedim!

Bu EA'yı scalping için yaptık! EA, her scalping siparişini 1 pip kârla kapatmalıdır! Uzun vadeli emirleri kapatmamak için OrderOpenTime() komutunu kullandık. Scalping siparişleri manuel olarak ayarlanır! TP gibi davranır ama sadece 1 pip kârla!

Teşekkür ederim

 
Ah, anlıyorum, EA'nın ölçeklendirme olmayan, kısa vadeli siparişleri kapatmasını istemiyorsunuz. . .
 
RaptorUK :
Ah, anlıyorum, EA'nın ölçeklendirme olmayan, kısa vadeli siparişleri kapatmasını istemiyorsunuz. . .
Aynen öyle!
 

Tamam, bazı yorumlar. . .

1. Döngünüz neredeyse hiçbir şey yapmıyor, döngü içinde ne yapmak istediğinizi { } parantez içine almanız gerekiyor. . .

2. 2 OrderSelect() çağrınız var, eğer her şeyi döngüye sokarsanız, sadece bir taneye ihtiyacınız olacak. . .

3. Kapanış alımları bölümü sadece Al emirleri için yürütülmeli, yakın satışlar sadece Satış emirleri için yürütülmelidir.

4. 1 pip kârınız 4 basamaklı çiftler için sabit kodlanmıştır, bu nedenle USDJPY gibi çiftler için çalışmaz

 

Belki böyle bir şey. . . .

 extern double TPforBuys= 1 ;
extern double TPforSells= 1 ;
extern double TimeForEA= 120 ;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{

return ( 0 );
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
for ( int a= OrdersTotal ()- 1 ;a>= 0 ;a--)
   {
   double TPbuy = TPforBuys / 10000 ;
   
   if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
   OrderType ()==OP_BUY && OrderSymbol ()== Symbol () )   // order type and Symbol checked here
      {
       double TPB= OrderOpenPrice ()+ TPbuy;
      
       // Close Buys
       if (Bid>TPB)
         {
         
         if ( TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 ) )   // no need to check type and symbol here
             if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
               {
               Print ( "OrderClose failed, error: " , GetLastError ());
               }
             else continue ;         // if order has been closed move to the next position, no need to check if it's a SELL
         } // end of if(Bid>TPB)
      } // end of if( OrderSelect(a 
      
   double TPsell = TPforSells / 10000 ;
   
   if ( OrderSelect (a,SELECT_BY_POS, MODE_TRADES) && 
   OrderType ()==OP_SELL && OrderSymbol ()== Symbol () )
      {
       double TPS= OrderOpenPrice ()- TPsell;

       // Close Sells
       if (Ask<TPS)
         {
   
         if ( TimeCurrent ()- OrderOpenTime () <= (TimeForEA * 60 ) )
             if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 1000 , White ) )
               Print ( "OrderClose failed, error: " , GetLastError ());
            
         } // end of if(Ask<TPS)
      } // end of if( OrderSelect(a
   } // end of for(int a=OrdersTotal()

return ( 0 );
}
 
RaptorUK :

Belki böyle bir şey. . . .

Bu arada, o kodu derlemedim veya test etmedim. . .