Belirli bir süre ve/veya SL'den sonra siparişi otomatik olarak kapat

 

birlikte merhaba,

Belirli bir süre ve/veya SL'ye ulaşıldıktan sonra bir siparişi otomatik olarak kapatmanın mümkün olup olmadığını bilmek istiyorum...

Örneğin:

Saat 1'de bir işlem açtım. ve teklif StoppLoss'a ulaştığında veya 2 saatlik bir süre geçtiğinde bu siparişin kapanmasına izin vermek istiyorum.

İşte gerçek kod:

// Satın alma kriterleri
if ((TicaretSaati3==Saat())||(TicaretSaati4==Saat())||(TicaretSaati7==Saat())||(TicaretSaati10==Saat())||(TicaretSaati17==Saat()) ||(TicaretSaati18==Saat())||(TicaretSaati20==Saat())) //Sinyal Alımı
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,slb,tpb,"zaman tüccar alış emri ",BuyMagicNumber,0,Blue);
if(openbuy<1){int buyfail=1;}
}

}// dur1

if((halt2!=1)&&(AllowSell==true)){// halt2
Yenileme Oranları();
// Satış kriterleri
if ((TicaretSaati12==Saat())||(TicaretSaati23==Saat())) //Sinyal Satışı
{
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sls,tps,"zaman tüccarı satış emri ",SellMagicNumber,0,Green);
if(opensell<1){int sellfail=1;}
}

}// halt2

Şimdiden teşekkür ederim

Marc

 

Lütfen kodu göndermek için bunu kullanın. . . okumayı kolaylaştırır.

 
OrderOpenTime kullanılarak ne zaman açıldıklarını kontrol eden açık siparişler arasında dolaşın (önce OrderSelect'i kullanmayı unutmayın), ardından 2 saatin geçip geçmediğini görmek için TimeCurrent ile o zamanı kontrol edin. . siparişi kapatmışlarsa .
 
nirvanamac :

birlikte merhaba,

Belirli bir süre ve/veya SL'ye ulaşıldıktan sonra bir siparişi otomatik olarak kapatmanın mümkün olup olmadığını bilmek istiyorum...

Örneğin:

Saat 1'de bir işlem açtım. ve teklif StoppLoss'a ulaştığında veya 2 saatlik bir süre geçtiğinde bu siparişin kapanmasına izin vermek istiyorum.

İşte gerçek kod:

// Satın alma kriterleri
if ((TicaretSaati3==Saat())||(TicaretSaati4==Saat())||(TicaretSaati7==Saat())||(TicaretSaati10==Saat())||(TicaretSaati17==Saat()) ||(TicaretSaati18==Saat())||(TicaretSaati20==Saat())) //Sinyal Alımı
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,slb,tpb,"zaman tüccar alış emri ",BuyMagicNumber,0,Blue);
if(openbuy<1){int buyfail=1;}
}

}// dur1

if((halt2!=1)&&(AllowSell==true)){// halt2
Yenileme Oranları();
// Satış kriterleri
if ((TicaretSaati12==Saat())||(TicaretSaati23==Saat())) //Sinyal Satışı
{
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sls,tps,"zaman tüccarı satış emri",SellMagicNumber,0,Green);
if(opensell<1){int sellfail=1;}
}

}// halt2

Şimdiden teşekkür ederim

Marc


 // Buy criteria
if ((TradeHour3== Hour ())||(TradeHour4== Hour ())||(TradeHour7== Hour ())||(TradeHour10== Hour ())||(TradeHour17== Hour ())||(TradeHour18== Hour ())||(TradeHour20== Hour ())) //Signal Buy
{
int openbuy= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,slb,tpb, "time trader buy order " ,BuyMagicNumber, 0 , Blue );
if (openbuy< 1 ){ int buyfail= 1 ;}
}

} // halt1

if ((halt2!= 1 )&&(AllowSell==true)){ // halt2
RefreshRates ();
// Sell criteria
if ((TradeHour12== Hour ())||(TradeHour23== Hour ())) //Signal Sell
{
int opensell= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,sls,tps, "time trader sell order " ,SellMagicNumber, 0 , Green );
if (opensell< 1 ){ int sellfail= 1 ;}
}

} // halt2
 
nirvanamac :
Belirli bir süre ve/veya SL'ye ulaşıldıktan sonra bir siparişi otomatik olarak kapatmanın mümkün olup olmadığını bilmek istiyorum...
  1. SL'ye ulaşılırsa kendini kapatır.
  2. Aksi takdirde, sadece kodlamanız gerekir. OrderClose() ve zaman testiniz nerede?
 
WHRoeder :
  1. SL'ye ulaşılırsa kendini kapatır.
  2. Aksi takdirde, sadece kodlamanız gerekir. OrderClose() ve zaman testiniz nerede?


Merhaba WHRoeder,

Sanırım delik kodunu mu kastediyorsun yoksa?

//---- input parameters
extern double     Lots= 0.01 ;
extern int        TakeProfit= 200 ;
extern int        StopLoss= 200 ;
extern int        Slip= 50 ;
extern int BuyMagicNumber = 1 ;
extern int SellMagicNumber = 2 ;
extern bool AllowBuy=true;
extern bool AllowSell=true;
extern int   TradeHour3= 3 ;
extern int   TradeHour4= 4 ;
extern int   TradeHour7= 7 ;
extern int   TradeHour10= 10 ;
extern int   TradeHour17= 17 ;
extern int   TradeHour18= 18 ;
extern int   TradeHour20= 20 ;
extern int   TradeHour12= 12 ;
extern int   TradeHour23= 23 ;
 
//+------------------------------------------------------------------+
//| expert starts                                  |
//+------------------------------------------------------------------+
int start()
  {
//----
int StopMultd,Sleeper= 1 ;
 
 
 
int digits= MarketInfo ( "EURUSD" ,MODE_DIGITS);
if (digits== 5 ){StopMultd= 10 ;} else {StopMultd= 1 ;}
double TP= NormalizeDouble (TakeProfit*StopMultd, Digits );
double SL= NormalizeDouble (StopLoss*StopMultd, Digits );
double Slippage= NormalizeDouble (Slip*StopMultd, Digits );
 
// Calculate stop loss
double slb= NormalizeDouble (Ask-SL* Point , Digits );
double sls= NormalizeDouble (Bid+SL* Point , Digits );
 
// Calculate take profit
double tpb= NormalizeDouble (Ask+TP* Point , Digits );
double tps= NormalizeDouble (Bid-TP* Point , Digits );
 
//-------------------------------------------------------------------+
//Check open orders
//-------------------------------------------------------------------+
if ( OrdersTotal ()> 0 ){
   for ( int i= 1 ; i<= OrdersTotal (); i++)           // Cycle searching in orders
     {
       if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // If the next is available
        {
           if ( OrderMagicNumber ()==BuyMagicNumber) { int halt1= 1 ;}
           if ( OrderMagicNumber ()==SellMagicNumber) { int halt2= 1 ;}
        }
     }
}
//-------------------------------------------------------------------+
 
 
if ((halt1!= 1 )&&(AllowBuy==true)){ // halt1
 
// Buy criteria
if ((TradeHour3== Hour ())||(TradeHour4== Hour ())||(TradeHour7== Hour ())||(TradeHour10== Hour ())||(TradeHour17== Hour ())||(TradeHour18== Hour ())||(TradeHour20== Hour ())) //Signal Buy
 {
   int openbuy= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,slb,tpb, "time trader buy order " ,BuyMagicNumber, 0 , Blue );
   if (openbuy< 1 ){ int buyfail= 1 ;}
 }
 
} // halt1
 
if ((halt2!= 1 )&&(AllowSell==true)){ // halt2
RefreshRates ();
 // Sell criteria
 if ((TradeHour12== Hour ())||(TradeHour23== Hour ())) //Signal Sell
 {
   int opensell= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,sls,tps, "time trader sell order " ,SellMagicNumber, 0 , Green );
   if (opensell< 1 ){ int sellfail= 1 ;}
 }
 
} // halt2
 
 
//-------------------------------------------------------------------+
// Error processing
//-------------------------------------------------------------------+
if (buyfail== 1 ||sellfail== 1 ){
int Error= GetLastError ();
   if (Error== 130 ){ Alert ( "Wrong stops. Retrying." ); RefreshRates ();}
   if (Error== 133 ){ Alert ( "Trading prohibited." );}
   if (Error== 2 ){ Alert ( "Common error." );}
   if (Error== 146 ){ Alert ( "Trading subsystem is busy. Retrying." ); Sleep ( 500 ); RefreshRates ();}
 
}
 
// if(openbuy==true||opensell==true)Sleep(1*60*1000*Sleeper);
//-------------------------------------------------------------------
   return ( 0 );
  }
//+-----------------------------------
 

aslında sadece bir stopploss var. Yeni bir bar açıldıktan 2 saat sonra veya 1:59:59'un son saniyesinden sadece siparişi kapatmak istiyorum...Benim sorunum kodu mevcut bara doldurmak...

 
RaptorUK :
OrderOpenTime kullanılarak ne zaman açıldıklarını kontrol eden açık siparişler arasında dolaşın (önce OrderSelect'i kullanmayı unutmayın), ardından 2 saatin geçip geçmediğini görmek için TimeCurrent ile o zamanı kontrol edin. . siparişi kapatmışlarsa .
Sadece şunu kodla. . . gerçekten zor değil.
 
RaptorUK :
Sadece şunu kodla. . . gerçekten zor değil.

Umarım başarısız olursam bana ipuçları verebilirsin ;-)
 
AFAIK buradaki herkes yardım etmek istiyor ama kimsenin kölesi olmak istemiyor
 
qjol :
AFAIK buradaki herkes yardım etmek istiyor ama kimsenin kölesi olmak istemiyor


Evet tabii ki anlıyorum... EA'larım için köle sahibi olmak istemiyorum... bilmem gereken tek şey, bir programın nasıl çalıştığını nasıl anlayacağım...

SMA Cross gibi basit bir EA'nız varsa...bu büyük bir sorun değil...ama ne kadar çok başarmak isterseniz o kadar zorlaşır...(en azından benim için)