Belirli bir saatte mumun açık fiyatına sahip olun. - sayfa 2

 
Kane59 :

Tamam, kodunuzu EA'ma ekledim ve mükemmel çalışıyor! EA'nın istediğim gibi çalıştığını gördüğümde gülümsedim !!!

Çok teşekkürler çok çok......

Geri testte çünkü piyasa kapalı...

Ama bir problem var:

Ea Doğru pozisyonlar açın, ancak alış asla kapanmaz ve açıldığında hemen kapanır.

OrderClose()'nuzun başarısız olup olmadığını ve neden başarısız olduğunu bilmek istemez misiniz? Neden OrderClose() işlevinden dönüş değerini kontrol etmiyor ve herhangi bir hata bildirmiyorsunuz? Hem Buy hem de Sell'in hemen kapanmaya çalıştığını ancak Buy OrderClose()'un başarısız olduğunu görebilirsiniz. . .

İşlev dönüş değerleri nelerdir? Onları nasıl kullanırım?

 

Günlük sekmesinde hata yok.


Dönüş değerlerini yerleştireceğim. Bunu yapabilir miyim?

Close = CloseOrder(....)

if (Close < 1 )

Print ( "Close Failed" , GetLastError ())
 
Kane59 :

Günlük sekmesinde hata yok.


Dönüş değerlerini yerleştireceğim. Bunu yapabilir miyim?

Kapatın farklı bir anlamı var. . . OrderClose() bir bool döndürür. . .

 if ( ! OrderClose(....) )

Print ( "Close Failed" , GetLastError ())
 
RaptorUK :

Kapatın farklı bir anlamı var. . . OrderClose() bir bool döndürür. . .


tamam tamam öyle yapacağım teşekkürler :)
 

ekledim:

 if ( OrdersTotal ()> 0 )
            { 
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
               {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
                  {
                     if (OrderMagicNumber() == MagicSH && OrderOpenTime() > iTime( Symbol (), PERIOD_H1 , 1 ))
                     {
                         if (OrderType() == OP_BUY)
                        {
                           OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE );
                           {
                               if (! OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE ))
                              {
                                 Print ( "Close Buy Failed" , GetLastError ());
                              }
                           }
                        }
                         if (OrderType() == OP_SELL)
                        {
                           OrderClose(OrderTicket(),LotsSH, ask, 300 , CLR_NONE );
                           {
                               if (! OrderClose(OrderTicket(),LotsSH, ask, 300 , CLR_NONE ))
                              {
                                 Print ( "Close Sell Failed" , GetLastError ());

Hata yazılmadı.

 
Kane59 :

ekledim:

Hata yazılmadı.

Aynı siparişi iki kez kapatamazsınız. . .

 OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE );             //  first attempt to close
    {
     if (! OrderClose(OrderTicket(),LotsSH, bid, 300 , CLR_NONE ))       //  second attempt to close
 

Sorunu çözdüm, döngü koşulları doğru kodlanmadı...

Tekrar teşekkürler.

 

Herkese selam,

WHRoeder tarafından verilen kodu kullandım, ancak zamanla EA'nın 4 farklı saat için yalnızca bir "#define" referansı aldığını görüyorum.

     #define HR0900 23400      // 9*3600
     #define HR1500 54000
     #define HR1900 68400
     #define HR2300 59800

Farklı bir yol denedim:

Int ile mum referansı olan ve aynı olan bir dizi boyutu oluşturdum, sadece bir tanesi 4 numara olarak kabul edilmez, nasıl çözebilirim?

 
Kane59 :

Tamam, kodunuzu EA'ma ekledim ve mükemmel çalışıyor! EA'nın istediğim gibi çalıştığını gördüğümde gülümsedim !!!

WHRoeder'ın kodunu kırmak için ne yaptınız?
 
Kane59 :

. . . nasıl çözebilirim?

Kodunuzu göstermeniz gerektiğini düşünüyorum.