Lütfen kodu göndermek için bunu kullanın. . . okumayı kolaylaştırır.
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
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...
- SL'ye ulaşılırsa kendini kapatır.
- Aksi takdirde, sadece kodlamanız gerekir. OrderClose() ve zaman testiniz nerede?
- SL'ye ulaşılırsa kendini kapatır.
- 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...
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.
Umarım başarısız olursam bana ipuçları verebilirsin ;-)
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)
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
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