Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 33

 

İyi akşamlar! Bu işlevin tam olarak istediğimi vereceğinden oldukça eminim, yani, neredeyse. Ancak makine derlemek istemiyor, böyle küfrediyor

'}' - tüm kontrol yolları bir değer döndürmez htghtgfhthf.mq5 61 10 Mantıkta bir sorun olup olmadığına bakın, tüm dönüşler yok. Gerektiği yerde yayınlandı! Aksine her if desteğinin ardına koyarsanız saçmalık olur, program hemen yanlış sonuç verir. Her şey kısa ve güzel görünüyor. Eğer öyleyse, onu kabul etmesini nasıl sağlayabilirim?

 string OrderType() { 
 string Si= "" ;

 long lo;
 bool Bull= false ; 
 Bull = PositionGetInteger ( POSITION_TYPE ,lo);
 if ( Bull ) {
 if ( lo== POSITION_TYPE_BUY ) Si= "OP_BUY" ;
 if ( lo== POSITION_TYPE_SELL ) Si= "OP_SELL" ;
 return (Si); }


 // ENUM_ORDER_TYPE ORType;

 Bull = OrderGetInteger ( ORDER_TYPE ,lo);
 if ( Bull ) {
 if ( lo== ORDER_TYPE_BUY_LIMIT ) Si= "OP_BUY_LIMIT" ;
 if ( lo== ORDER_TYPE_SELL_LIMIT ) Si= "OP_SELL_LIMIT" ;
 if ( lo== ORDER_TYPE_BUY_STOP ) Si= "OP_BUY_STOP" ;
 if ( lo== ORDER_TYPE_SELL_STOP ) Si= "OP_SELL_STOP" ;
 return (Si); }

 }
 
Dimka-novitsek :

İyi akşamlar! Bu işlevin tam olarak istediğimi vereceğinden oldukça eminim, yani, neredeyse. Ancak makine derlemek istemiyor, böyle küfrediyor

'}' - tüm kontrol yolları bir değer döndürmez htghtgfhthf.mq5 61 10 Mantıkta bir sorun olup olmadığına bakın, tüm dönüşler yok. Gerektiği yerde yayınlandı! Aksine her if desteğinin ardına koyarsanız saçmalık olur, program hemen yanlış sonuç verir. Her şey kısa ve güzel görünüyor. Eğer öyleyse, onu kabul etmesini nasıl sağlayabilirim?

İpucu: Teknik İngilizce öğrenmeniz gerekiyor. Şimdi koda bir göz atacağım.

İlgili: Bir işlev, bir dize değeri döndürmelidir. Fonksiyonun içinde , return ifadelerini içeren if ifadesiyle birlikte bir kontrol kullanılır. Soru: if ifadesi Bull == false olduğunu bulursa, işlev ne döndürmeli?

 
Tabii ki, Si="" ! Boş değer.
 

Aha!! Teşekkürler!!!

Teşekkürler!!!!

 
Dimka-novitsek :

İyi akşamlar! Bu işlevin tam olarak istediğimi vereceğinden oldukça eminim, yani, neredeyse. Ancak makine derlemek istemiyor, böyle küfrediyor

'}' - tüm kontrol yolları bir değer döndürmez htghtgfhthf.mq5 61 10 Mantıkta bir sorun olup olmadığına bakın, tüm dönüşler yok. Gerektiği yerde yayınlandı! Aksine her if desteğinin ardına koyarsanız saçmalık olur, program hemen yanlış sonuç verir. Her şey kısa ve güzel görünüyor. Eğer öyleyse, onu kabul etmesini nasıl sağlayabilirim?

tüm kontrol yolları bir değer döndürmez - bir değerin dönüşü üzerinde tam kontrol yoktur.

Bu, türün geçersiz olmadığı için bir dönüş değerine sahip olması gereken OrderType() dizesinde , dönüş değerine sahip garantili bir çıkış olmadığı anlamına gelir.

2 tam dönüş ifadesi koysanız bile, ikisi de if koşuluyla korunur. Her iki koşul da yanlışsa ne olur?

o zaman en azından arabanın camından atla.

Bu arada, bu işlevde, aslında anahtarla aynı işi yapan bir ifs yığını yerine, anahtar sayacını kullanmak daha uygundur.

ZZY Plus, pozisyonun da sipariş gibi önceden seçilmesi gerektiğini unutmamalısınız. Numaralandırmaları dizgelere çevirmek için standart bir EnumToString işlevi vardır, bu nedenle tekerleği yeniden icat etmeye gerek yoktur.

 
TEŞEKKÜR EDERİM!!!
 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"

int Tick_All;

MqlTick            last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   Tick_All= 0 ;

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (! SymbolInfoTick ( _Symbol ,last_tick))
     {
       Print ( "Failed to get Symbol info!" );
     }

   Tick_All++;
   Print (Tick_All, "   " ,last_tick.bid, "   " ,last_tick.ask, "  " ,last_tick.last, " " ,last_tick.volume);
  }
//+------------------------------------------------------------------+


Fiyat değişmemesine rağmen neden OnTick denildiğini anlamıyorum?????

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
dentraf :

Fiyat değişmemesine rağmen neden OnTick denildiğini anlamıyorum?????

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

Son fiyat güncellemesinin zamanı da değişmiyor mu?
 
Yedelkin :
Son fiyat güncellemesinin zamanı da değişmiyor mu?

2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 20 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19
2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 19 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19
2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 18 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:18

veya

2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 6 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:11
2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 5 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:11
2012.09.10 15:37:12 Sample_Tick (EURUSD.m,M5) 4 1.27835 1.27845 1.27835 1000000 2012.09.10 14:37:10

 
dentraf :

2012.09.10 15:37:20 Sample_Tick (EURUSD.m,M5) 20 1.27841 1.27852 1.27841 2000000 2012.09.10 14:37:19

Fiyat değişim zamanı, bir nevi GMT+3'te gösterilir. Bu kimin sunucusu?