MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 542

 
Artyom Trishkin :

Bu andan itibaren[i] saati ayırmanız gerekir.

Aynı şekilde, saat 10:05:00 ve 22:10:00 ve diğer saatler izin verilenlerin dışında baskıda görüntülenir.

5'ten 11'e kadar yazdırmamalı ve o...

 for ( int i=limit- 2 ; i> 0 ; i--) 
     {
     if ( TimeHour (time[i])>= 17 && TimeHour (time[i])<= 11 ) continue ;
       if (i% 2 == 0 ) 
        {
         if (open[i]<close[i] && open[i+ 1 ]>close[i+ 1 ]) 
           {
            k1++;
             if (k1>max) {max=k1; dat_max=time[i];}
             if (k1>= 4 ) Print ( "Num: " ,k1, "dat_max " ,time[i]);
            SetText( "Obj_" +( string )time[i],( string )k1,time[i],high[i],Arr);
           }
         else k1= 0 ;
         
           } else {
         if (open[i]<close[i] && open[i+ 1 ]>close[i+ 1 ]) 
           {
            k2++;
             if (k2>max){ max=k2; dat_max=time[i];}
             if (k2>= 4 ) Print ( "Num: " ,k2, "dat_max " ,time[i]);
            SetText( "Obj_" +( string )time[i],( string )k2,time[i],high[i],Arr);
           }
         else k2= 0 ;
         
        }
      
     }

   Comment ( "Max: " ,max, "dat_max " ,dat_max, " rates_total " ,rates_total);

 
if(TimeHour(time[i])>=17 || TimeHour(time[i])<=11)continue;
 
Taras Slobodyanik :

Teşekkür ederim.

 
k_chens :

Tünaydın! Bana yardım et lütfen! Lot sayısı için bir kontrol yazmaya çalışıyorum. Hesabım +%10 kar olursa, lot ikiye katlanır. +%20 ise, lot*4. Ve hesap azalırsa, lot büyüklüğü buna göre azalır. Her yeni işlem için Lots_New'in yeni bir değer almasını nasıl yapacağımı anlamıyorum.

Bu, programlamayı yeni öğrenmeye başlayan bir kişi için önemsiz bir görev olmaktan uzaktır. Gerçekten de, bunu çözmek için, dengenin bir sonraki değerinin korunmasını kontrol eden bir mekanizma üzerinde düşünmek gerekir. Ayrıca, bu değeri nerede saklayacağınızı bulmanız gerekir. Program değişkenleri bunun için uygun değildir. Örneğin, global uçbirim değişkenlerini kullanabilir veya bir dosyaya yazabilirsiniz. Her şey programı nerede ve nasıl kullanmayı planladığınıza bağlıdır.

En evrensel çözüm (programın kopyaları arasında veri aktarımı yapma imkanı olmadan programı farklı bilgisayarlarda kullanmayı planlıyorsanız), program sonucunda elde edilen kar/zararı hesaplamak için hesap geçmişini taramaktır. Ancak o zaman bile, bir referans noktası seçme sorunu ortaya çıkar (sayılacak olan terazinin değerinin nereden alınacağı).

 
Merhaba, lütfen bir sihirbaz seçmek için satırları açıklayın:

harici bool el emirleri =true ;
harici int Sihirli_Sayı =7777;
//İlk satır
((OrderMagicNumber()==Magic_Number && hand_orders==false) || (OrderMagicNumber()==0 && hand_orders==true)))

//ikinci çizgi
(OrderMagicNumber()==Magic_Number || (OrderMagicNumber()==0 && hand_orders==true)))


Hangi sihirli değerleri özlüyorlar? Lütfen yaz
 
Tigerfreerun :
Merhaba, lütfen bir sihirbaz seçmek için satırları açıklayın:

harici bool el emirleri =true ;
harici int Sihirli_Sayı =7777;
//İlk satır
((OrderMagicNumber()==Magic_Number && hand_orders==false) || (OrderMagicNumber()==0 && hand_orders==true)))

//ikinci çizgi
(OrderMagicNumber()==Magic_Number || (OrderMagicNumber()==0 && hand_orders==true)))


Hangi sihirli değerler eksik? Lütfen yaz

ifadelerinizde - && yerine "VE AYNI ZAMANDA" ve || "VEYA" kelimesiyle değiştirin

ortaya çıkanı okurken, neyin ve nasıl çalıştığını anlamanız gerekir.


ilk satır YA magic=7777 ile (hand_orders=false ile) VEYA magic=0 ile (hand_orders=true ile) çalışır

ikinci satır HER ZAMAN magic=7777 ile çalışır ve hand_orders=true ile EK OLARAK magic=0 ile çalışır

 

Bir fonksiyonda, iki enstrüman için puan cinsinden kâr nasıl hesaplanır?

büküyorum

 double Punkts_B( string Sy_1= "" , string Sy_2= "" , int _Mag=- 1 )
  {
   double xxx= 0 ;
   bool bw;
   for ( int t= 0 ;t<= OrdersTotal ();t++)
     {
      bw= OrderSelect (t, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol ()==Sy_1 || OrderSymbol ()==Sy_2
         && OrderMagicNumber ()==_Mag
         && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ))
         xxx= OrderClosePrice ()- OrderOpenPrice ();
       RefreshRates ();
     }
   return (xxx);
  }
 
PolarSeaman :

Bir fonksiyonda, iki enstrüman için puan cinsinden kâr nasıl hesaplanır?

büküyorum

 int Punkts_B( string Sy_1= "" , string Sy_2= "" , int _Mag=- 1 )
  {
   int xxx = 0 ;
   double tickValue_1 = SymbolInfoDouble (Sy_1, SYMBOL_TRADE_TICK_VALUE ),
          tickValue_2 = SymbolInfoDouble (Sy_2, SYMBOL_TRADE_TICK_VALUE );
   for ( int t= 0 ;t< OrdersTotal ();t++)
     {
       if ( ! OrderSelect (t, SELECT_BY_POS , MODE_TRADES ) )   continue ;
       if ( OrderSymbol ()!=Sy_1 && OrderSymbol ()!=Sy_2 ) continue ;
       if ( OrderMagicNumber ()!=_Mag )                   continue ;
       if ( OrderType ()!= OP_BUY && OrderType ()!= OP_SELL ) continue ;
      xxx+=( int )(( OrderProfit ()+ OrderSwap ()+ OrderCommission ())/( OrderSymbol ()==Sy_1 ? tickValue_1 : tickValue_2));
     }
   return (xxx);
  }
 
Konstantin Nikitin :
iki farklı enstrümanın puanları eklenemez.
 
Maxim Kuznetsov :
iki farklı enstrümanın puanları eklenemez.

Puanla sordu, puanla burada. Ve sonra düşünmesine izin ver =)