[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 201

 
nlp2311 :

Anlayışın için teşekkürler!):

peki... iki komut dosyası yapın - bunları ihtiyacınız olan tuşlara asın - ve bunlara, danışmanınızın periyodik olarak okuyacağı terminalin Global değişkenini ekleyin veya çıkarın - ve Barshift'i onunla değiştirin... :-)

ve ayrıca yapabilirseniz - aynısını grafik nesneler aracılığıyla da yapabilirsiniz... örneğin, danışmanı başlatırken, iki metin etiketi görüntülenir - ve bunlardan herhangi biri kaybolursa (danışman çalışırken fare ile bunlardan birini seçin) - Del tuşuna basın) - daha sonra barshift'inizin şu veya bu şekilde suçlandığı sayaç :-) - ekrandaki silinen işareti geri yükleme....

 
Aleksander :

peki... iki komut dosyası yapın - bunları ihtiyacınız olan tuşlara asın - ve bunlara, danışmanınızın periyodik olarak okuyacağı terminalin Global değişkenini ekleyin veya çıkarın - ve Barshift'i onunla değiştirin... :-)

ve ayrıca yapabilirseniz - aynısını grafik nesneler aracılığıyla da yapabilirsiniz... örneğin, danışmanı başlatırken, iki metin etiketi görüntülenir - ve bunlardan herhangi biri kaybolursa (danışman çalışırken fare ile bunlardan birini seçin) - Del tuşuna basın) - daha sonra barshift'inizin şu veya bu şekilde suçlandığı sayaç :-) - ekrandaki silinen işareti geri yükleme....


Lanet olsun, o zaman zaten grafikte dikeyi sürün ve ona göre gezinin.
 
alsu :

Bu arada MT neden kanca istemiyor?

Koruma. Alt sınıflama çalışmaları.
 
Zhunko :
Koruma. Alt sınıflama çalışmaları.
ardından pencereyi WindowProc ile değiştirin))
 

Merhaba. Lütfen kodda bir hata bulmama yardım edin, artık gücüm yok - hiçbir şey yapamıyorum.

Büyük ihtimalle son bölümde.

 #define MagicNum   700283
//-----
ObjectSetText
extern double   Percent        = 0.8 ;
extern double   TakeProfit     = 55 ;
extern bool     UseMM          = true;
extern int      PercentMM      = 1 ;
extern double   Lots           = 0.1 ;
//+------------------------------------------------------------------+
double GetLots()
 { 
   if (UseMM)
    {
       double a;
      a = NormalizeDouble ((PercentMM * AccountFreeMargin () / 100000 ), 2 );      
       if (a > 49.99 ) return ( 49.99 );
       else if (a < 0.01 )
       {
         return ( 0 );
       }
       else return (a);
    }    
   else return (Lots);
 }
//+------------------------------------------------------------------+ 
int CalculateCurrentOrders()
 {
   int orderT = OrdersTotal (), buys = 0 , sells = 0 ;
   //----
   for ( int i = 0 ; i < orderT; i++)
    {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == false) break ;
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNum)
       {
         if ( OrderType () == OP_BUY)  buys++;
         if ( OrderType () == OP_SELL) sells++;
       }
    }
   if (buys > 0 ) return (buys);
   else if (sells > 0 ) return (-sells);
   else return ( 0 );
 }
//+------------------------------------------------------------------+  
int start()
 {
         //==============
   int   ticket;
   //-----
   if (CalculateCurrentOrders() == 0 ) 
    {
       if ( AccountFreeMargin () < ( 1000 * GetLots())) 
         {
             return ( 0 );  
         }
       if (High[ 1 ]<High[ 2 ] && Low[ 1 ]>Low[ 2 ] && (High[ 1 ]-Low[ 1 ])/(High[ 2 ]-Low[ 2 ])<Percent)
       {
         ticket= OrderSend ( Symbol (), OP_BUYSTOP, GetLots(), High[ 1 ], 3 , Low[ 2 ], High[ 1 ] + TakeProfit * Point , "iB" , MagicNum, 0 , Green );
         ticket= OrderSend ( Symbol (), OP_SELLSTOP, GetLots(), Low[ 1 ], 3 , High[ 2 ], Low[ 1 ] - TakeProfit * Point , "iB" , MagicNum, 0 , Red );
       }
    }
 }
 
SkinnerDE :

Merhaba. Lütfen kodda bir hata bulmama yardım edin, artık gücüm yok - hiçbir şey yapamıyorum.

Büyük ihtimalle son bölümde.


Sorun nedir, derleme değil mi?
 
Bu arada, lotları kaldıraçla çarpmayı unuttun. Bu nedenle, GetLots() işlevinizdeki a değişkeni büyük olasılıkla 0 olacaktır (tabii ki, hesapta bir milyon para yoksa)
 

'{' - sol parantez bekleniyor C:\DOCUME~1\9226~1\0016~1\Forex\MACD_N~1.MQ4 (11, 2)

'{' - noktalı virgül bekleniyor C:\DOCUME~1\9226~1\0016~1\Forex\MACD_N~1.MQ4 (11, 2)

burada

 
//+------------------------------------------------------------------+
double GetLots()
 { 
   if (UseMM) {
       double a;
      a = NormalizeDouble ((PercentMM * AccountFreeMargin () / 100000 ), 2 );      
       if (a > 49.99 ) return ( 49.99 );
       if (a < 0.01 )   return ( 0 );
       return (a);
    }    
 return (Lots);
 }
nedense doldurulmuş parantez ve elzev :-)
 
hiçbir şey değişmedi, aynı hata