uzman danışman - çeşitli sorular - sayfa 19

 

#OrderType() dize - Aç

Aşağıdaki kod bana Sell OrderType için ' 1 ' veriyor ancak OrderType'ın bunlardan birine 'Sat, Buy vb.' sokması gerekiyor, sayısal almak istemiyorum.
Yararlı bir yoruma ihtiyacım var, lütfen, teşekkürler.

IntegerToString ( OrderType () );
 

Bir geçiş komutu kullanın.

switch ( OrderType ())
{
case OP_SELL :
  
break ;

case OP_BUY :

break ;
}
 
Marco vd Heijden :

Bir geçiş komutu kullanın.

Yorum için teşekkürler, en kısa zamanda deneyeceğim.
 

İşleri daha da basitleştirmek istiyorsanız #define yönergesini de kullanabilirsiniz:

#define buy   OP_BUY
#define sell OP_SELL
if ( OrderType ()==buy)

if ( OrderType ()==sell)
 
honest_knave :

İşleri daha da basitleştirmek istiyorsanız #define yönergesini de kullanabilirsiniz:

Bay William'dan pip ve nokta kodları için hangisinin kopyalandığını zaten kullanıyorum.
Bu yüzden yorumunuzdan sonra biraz araştırdım, sanırım herhangi bir senaryomda kullanabilirim.

Faydalı yorumunuz için teşekkürler.

 
Marco vd Heijden :

Bir geçiş komutu kullanın.

Çok teşekkürler dostum.

Bu EA'larım için Switch Operator'ü ilk kez deniyorum.
Yani bu konuda biraz daha öğrendiğimi söylemek isterim ama bu operatör için deneyimim yok.

Test EA'larımda denemeden önce sadece sormam gerekiyor, yani aşağıdaki kodu kullanabilir miyim, lütfen? (benim test ea'm zaten 500 satıra sahip - ve OrderType() 'ın string'e dönüştürülmesi için kafam karışacak)

for ( ... )
{
     switch ( OrderType () )
    {
         case      0   :     ObjectCreate ( ... name + " Buy" ... );
                         ObjectSetInteger (chart_ID,name + " Buy" , OBJPROP_COLOR ,clr);
                         // ...
         break ;
         case      1   :     ObjectCreate ( ... name + " Sell" ... );
                         // ...
         break ;
    }
}

Şimdiden teşekkürler.

// --- ikinci kez düzenlendi

Belki endişem net değil.
Bu sorun için zaten çok zaman harcadım gerçekten bu operatörü oynuyorum ama sonuç yok.

Aşağıdaki kod bana sayısal verir.

Print ( "OrderType: " , IntegerToString ( OrderType () ) );

// EURAUD,M30: OrderType: 0

Ama sonucun altında kalmaya çalışıyorum.

// EURAUD,M30: OrderType: Buy

Sadece faydalı bir yoruma ihtiyacım var.
Bana yardım eder misin ( / bana tavsiye verir misin ), lütfen?

 

İD

Değer

Tanım

OP_BUY

0

satın alma işlemi

OP_SELL

1

satış işlemi


     switch ( OrderType ())
     {
       case 0 :
       Print ( "OrderType: buy" );
       break ;
      
       case 1 :
       Print ( "OrderType: sell" );
       break ;
     }

veya

   if ( OrderType ()== 0 )
     {
       Print ( "OrderType: buy" );
     }

   if ( OrderType ()== 1 )
     {
       Print ( "OrderType: sell" );
     }
 

@Marco çok teşekkürler.

Sonunda anladım ama " Dönüştürme İşlevlerinden " bir kod yazacağımı bekliyordum... yanlış beklentim kafamı karıştırıyordu.
Şu anda 3 "HLine" nesnesi kullanıyorum, şimdi bunu her iki durum için de kopyaladım ( 0 ve 1 ). Şimdiye kadar iyi çalışıyor.
Ayrıca " Order Properties " 6 değere sahip, bu yüzden aynısını uygulamak istiyorum ( örneğin nesne, renk, stil, genişlik vb. ) Print fonksiyonunu 0, 2, 4'e.

S: Aşağıdaki yöntemi kullanabilir miyim?

(Sadece örneğin yazdırma işlevi )

switch ( OrderType () )
{
     case 0 : Print ( "OrderType: buy" );
             // ...
     break ;

     case 2 : Print ( "OrderType: buy" );
             // ...
     break ;

     case 4 : Print ( "OrderType: buy" );
             // ...
     break ;
}

Şimdiden çok teşekkürler!

 

Hayır çünkü değerler:

İD

Değer

Tanım

OP_BUY

0

satın alma işlemi

OP_SELL

1

satış işlemi

OP_BUYLIMIT

2

Limit bekleyen sipariş satın al

OP_SELLLIMIT

3

Satış limiti bekleyen emir

OP_BUYSTOP

4

Bekleyen durdurma emrini satın al

OP_SELLSTOP

5

Satış durdurma emri


Yani 2. durum ve 4. durum OP_BUY'a eşit değil

Bunlar OP_BUYLIMIT ve OP_BUYSTOP olduğundan farklı şeylerdir.

Demek istediğin bu değilse ama şunu söylemek açıklığa kavuşur

switch ( OrderType () )
{
     case 0 : Print ( "OrderType: buy" );
             // ...
     break ;

     case 2 : Print ( "OrderType: buy Limit" );
             // ...
     break ;

     case 4 : Print ( "OrderType: buy Stop" );
             // ...
     break ;
}
 
Marco vd Heijden :

Hayır çünkü değerler:
Yani 2. durum ve 4. durum OP_BUY'a eşit değil

#OrderType() dizgisi - Kapalı

En son yorumunuzdan sonra, davanın 0, 2, 4'ünü birleştiremeyeceğimi hissediyorum.
Zaman ayırdığınız ve yardımlarınız için @Marco vd Heijden'e teşekkürler.

Neden: