OrderSelect 4 OrderClose kullanmak zorunda değilsiniz ama OrderTicket() , OrderLots() için 2 tane var
Sevgili qjol,
Ne demek istediğinizi tam olarak anlamadım, lütfen açıklar mısınız? Teşekkür ederim
senin kodunda
if (bar3> 1 ) OrderClose ( OrderTicket (), OrderLots (), Ask , 3 ,Red);
OrderTicket() & OrderLots() & 4 bu fonksiyonları kullanarak OrderSelect()' i kullanmalısınız
Belgelerde görebileceğiniz gibi :
Not
Sipariş, bilet numarasına göre seçilirse havuz parametresi yok sayılır. Bilet numarası benzersiz bir sipariş tanımlayıcıdır.
Siparişin hangi listeden seçildiğini öğrenmek için kapanış zamanı analiz edilmelidir. Emir kapanış süresi 0 ise emir açık veya beklemededir ve terminal açık pozisyonlar listesinden alınır.
Açık bir pozisyon, bekleyen bir emirden emir tipine göre ayırt edilebilir. Emir kapanış zamanı 0'a eşit değilse, emir kapalı bir emirdir veya silinmiş bir bekleyen emirdir ve terminal geçmişinden seçilmiştir. Ayrıca sipariş türlerine göre birbirlerinden farklıdırlar.
OrderSelect() işlevi, sipariş verilerini program ortamına ve OrderClosePrice() , OrderCloseTime() , OrderComment() , OrderCommission() , OrderExpiration() , OrderLots() , OrderMagicNumber() , OrderOpenPrice() , OrderOpenTime( çağrılarına kopyalar. ) , OrderPrint() , OrderProfit() , OrderStopLoss() , OrderSwap() , OrderSymbol() , OrderTakeProfit() , OrderTicket() , OrderType() işlevleri daha önce kopyalanan verileri döndürür. Bu, bazı durumlarda sipariş detaylarının (açılış fiyatı, SL/TP seviyeleri veya son kullanma tarihi) değişebileceği ve verilerin güncel olmayacağı anlamına gelir. Sipariş verilerini istemeden önce OrderSelect() işlevini çağırmanız şiddetle tavsiye edilir.
Yani gerçek bilet numarasını ve Lot'u kullanırsam, OrderSelect'i kullanmama gerek kalmaz, değil mi? Bir seferde sadece bir emir açıyorum, açık emrin bilet numarasını nasıl alacağımı öğrenebilir miyim?
Tekrar teşekkürler
Yani gerçek bilet numarasını ve Lot'u kullanırsam, OrderSelect'i kullanmaya gerek kalmaz, değil mi? Bir seferde sadece bir emir açıyorum, açık emrin bilet numarasını nasıl alacağımı öğrenebilir miyim?
Tekrar teşekkürler
OrderSend() işlevi, başarılı olursa Bilet numarasını döndürür. MQL'nin nasıl kullanılacağını daha iyi anlamak için bu sitedeki Kitap bölümünü baştan sona okumanızı ve hangi parametrelerin kullanılacağını ve dönüş değerlerinin ne olduğunu daha iyi anlamak için kullandığınız her işlev için başvuru belgelerine bakmanızı öneririm.
Sayın Arkadaşlar,
OrderSelect()'i ekledim, ancak OrderClose hala çalışmıyor , lütfen yardım edin. Çok teşekkürler
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit= 500 ; extern double Lots= 0.1 ; extern double StopLoss= 300 ; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total= OrdersTotal (); int counted_bars= IndicatorCounted (); if (counted_bars> 0 ) counted_bars--; { bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ; bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ; bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ; if (bar2> 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green); OrderSelect ( 1 , SELECT_BY_POS ); if (bar3 <- 1 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ,Green); } if (bar2<- 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red); if ( bar3> 1 ) OrderClose ( OrderTicket (), Lots, Ask , 3 ,Red); } } return ( 0 ); //--- return ( 0 ); } //+------------------------------------------------------------------+
Herkese selam,
Şimdi OrderClose'a OrderTicket() ve OrderLots() kullanmadan bilet ve Lot ekliyorum ama o da siparişi kapatmıyor. Lütfen yardım et.
//+------------------------------------------------------------------+ //| chuale.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.abc.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.abc.com" #property version "1.00" #property strict extern double TakeProfit= 500 ; extern double Lots= 0.1 ; extern double StopLoss= 300 ; double bar1; double bar2; double bar3; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { //--- //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //--- return ( 0 ); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { int ticket; int total= OrdersTotal (); int counted_bars= IndicatorCounted (); if (counted_bars> 0 ) counted_bars--; { bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ; bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ; bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ; if (bar2> 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green); if (bar3 <- 1 ) OrderClose (ticket,Lots, Bid , 3 ,Green); } if (bar2<- 1 ) { if (total< 1 ) ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red); if ( bar3> 1 ) OrderClose (ticket, Lots, Ask , 3 ,Red); } } return ( 0 ); //--- return ( 0 ); } //+------------------------------------------------------------------+
Herkese selam,
Şimdi OrderClose'a OrderTicket() ve OrderLots() kullanmadan bilet ve Lot ekliyorum ama o da siparişi kapatmıyor. Lütfen yardım et.
bilet yerel bir değişkendir, bu nedenle bir sonraki onay işareti aynı değere sahip olmayacaktır.
Globalscope yapmak için işlevlerin dışına koyun
double bar1; double bar2; double bar3; int ticket;

- Ücretsiz alım-satım 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
Merhaba,
EA'm için aşağıdaki kodlamaya sahibim, lütfen OrderClose'un neden tetiklenmediğine yardım edin? OrderSelect() kullanmam gerekir mi? OrderSelect()'in amacı nedir? Teşekkür ederim.