OrderSend() işlevinde hata mı var? - sayfa 10

 
Roger :
Bu şekilde yapamazsınız. Durumunuz ilk tikte eşleşmediyse, tüm saat boşa gidecektir.


H1'de durum 60 dakika, yani bir sonraki bara kadar devam eder.

 //+------------------------------------------------------------------+
//|                                                     чернoвик.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

static datetime LastTime = 0 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (NewBar()== true )
       {
        
           int ticket= OrderSend ( Symbol (),OP_BUY, 1 ,Ask, 3 ,Bid- 250 * Point ,Ask+ 250 * Point , " " , 16384 , 0 ,Green);
        
       }
   Comment ( "LastTime   " ,LastTime, "   NewBar   " ,NewBar());  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
bool NewBar() 
    {
       
       if (iTime( NULL , 0 , 0 ) != LastTime) 
       {
          LastTime = iTime( NULL , 0 , 0 );      
           return ( true );
       } 
       else
           return ( false );
     
    }

test cihazındaki yoruma bak

 
pako :


her çubukta sadece bir pozisyonu açık tutun

Pako , şaşırdım! Bu konu boyunca benimle "Arnavut kodu" ile alay ettin, ama ne teklif ettin? :) Aynı şey, sadece yandan görünüş! Sonuçta, yeni çubuğun aynı işlevine sahipsiniz, yalnızca daha ilkel olarak kullanılır. Ve sonra bir emir gönderme, tüm sinyalleri vb. vb. atlama işlevi vardır. Ama çözüm burada değildi! Demek Arnavutçasın.

Kuğu :
Taki o zaman
yalnızca mevcut çubukta bir sipariş açılırsa. onlar. OpenBuy/Sell işlevinde bu satırı hareket ettirin





Kuğu Teşekkürler! Yapılması gereken buydu! Sipariş açma işlevinde yeni çubuk zamanı atanmışsa, boşluk olmaz . Zaten kontrol ettim, baktım ve her şeyin nasıl net bir şekilde gittiğinden çok memnun değilim. Uzman tam olması gerektiği gibi çalışır.

Geriye bir soru kalıyor. Önceki sürüm neden çalışmadı? Bir de şart vardı:

 // Проведение торговых операций
   if (signal != SIGNAL_NO)
       if (!Trade(signal))
           return ( 0 );

Trade(signal)) işlevi false döndürürse, işlevden çıkın ... ve satırdaki lastBarTime değişkenini güncellemeden önce kodun burada şöyle okunduğunu düşündüm:

lastBarTime = iTime( NULL , 0 , 0 );

gelmeyecek. Ama ortaya çıktığı gibi, her şey öyle değil. Bu anı açıklayabilir misin? Hatta çok ilginç. İlgilendim..

 
hoz :

Kuğu Teşekkürler! Yapılması gereken buydu! Sipariş açma işlevinde yeni çubuk zamanı atanmışsa, boşluk olmaz . Zaten kontrol ettim, baktım ve her şeyin nasıl net bir şekilde gittiğinden çok memnun değilim. Uzman tam olması gerektiği gibi çalışır.

Geriye bir soru kalıyor. Önceki sürüm neden çalışmadı? Bir de şart vardı:

Trade(signal)) işlevi false döndürürse, işlevden çıkın ... ve satırdaki lastBarTime değişkenini güncellemeden önce kodun burada şöyle okunduğunu düşündüm:

gelmeyecek. Ama ortaya çıktığı gibi, her şey öyle değil. Bu anı açıklayabilir misin? Hatta çok ilginç. İlgilendim..

Evet, ama eğer
signal == SIGNAL_NO

yeni bir çubuğun ilk işaretinde, lastBarTime güncellenir..


olmadan olabilir

   if (signal != SIGNAL_NO)
amaçlandığı gibi çalışacak .. Kod zor, kontrol edin)
 
hoz :

Pako , şaşırdım! Bu konu boyunca benimle "Arnavut kodu" ile dalga geçtin, ama ne teklif ettin? :) Aynı şey, sadece yandan görünüş! Sonuçta, yeni çubuğun aynı işlevine sahipsiniz, yalnızca daha ilkel olarak kullanılır. Ve sonra bir emir gönderme, tüm sinyalleri vb. vb. atlama işlevi vardır. Ama çözüm burada değildi! Demek Arnavutçasın.

pako :
TOR'u yeniden formüle etmek zor değilse, neden yeni çubuğun kontrolüne ihtiyacınız var?


saat :
Kolayca formüle edeceğim! 1 nokta daha aklıma gelmedi, AMA özü bütünüyle belirteceğim .

Sipariş sayısında herhangi bir kısıtlama olmaması gerekir. Onlar. emirler herhangi bir miktarda açılabilir... kaç tane olursa olsun, AMA mevcut çubukta sadece 1 emrin açılması gerekir. Bu kadar.

Onlar. yeni bir çubuk açıldı, yani bu çubuk sırasında 1 sipariş açabilirsiniz, ancak mevcut çubukta 1'den fazla sipariş açamazsınız. Bir sonraki sipariş sadece bir sonraki barda açılabilir, daha önce açılamaz..

Şimdi açık mı?

TOR'a göre yazdım, yeni bir barda bir pozisyon açıldı

TK'de başka bir şey göremiyorum

sana başarılar diliyorum

Neden: