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

 

Merhaba,

Çiftin penceresinde karı gösteren bir gösterge/komut dosyası arıyorum. Onlar. 3-5 çift işlem gördüğünde, bir artış veya kilitlenme varsa, bunlardan birinin kârını hızlı bir şekilde hesaplamak oldukça zordur.

Herhangi biri tavsiyede bulunabilirse, çok minnettar olurum.

 
Ruhun arzuladığı her şey.
Öz sermaye ve denge göstergesi
 
Teşekkür ederim! :)
 
PapaYozh :


Muhtemelen signal_MACD() işlevini düzeltin.

Peki, yine de bir şey iade edecekti.


false yerine true döndürmesini istiyorum ama nasıl yapacağımı bilmiyorum =( söyle lütfen... bir kez hatırlayacağım ve bir daha sormayacağım)
 

işte senaryo... nasıl gerçeğe dönüşecek?

 bool signal_MACD() 
  { 
     bool signal_MACD = false; 
     double tmp = iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 ); 
     for ( int i= 1 ;i<= 5 ;i++) 
    { 
       if ( NormalizeDouble ( iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 )*tmp, 4 )< 0.0 ) 
       { 
          signal_MACD = true; 
           break ; 
       } 
    } 
  } 
 
CLAIN :

işte senaryo... nasıl gerçeğe dönüşecek?


 bool signal_MACD() 
  { 
     double tmp = iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 ); 
     for ( int i= 1 ;i<= 5 ;i++) 
    { 
       if ( NormalizeDouble ( iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 )*tmp, 4 )< 0.0 ) 
       { 
          return(true); 
       } 
    } 
    return (false);
  } 
 
w_ersoc :

Merhaba,

Çiftin penceresinde karı gösteren bir gösterge/komut dosyası arıyorum. Onlar. 3-5 çift işlem gördüğünde, bir artış veya kilitlenme varsa, bunlardan birinin kârını hızlı bir şekilde hesaplamak oldukça zordur.

Herhangi biri tavsiyede bulunabilirse, çok minnettar olurum.

 double CurrentProfit() {   // Функция считает текущий профит/лосс для одной валютной пары
     double Profit= 0 ; 
     for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
       if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ;
       if ( OrderSymbol ()!= Symbol ()) continue ;
       if ( OrderMagicNumber ()!=Magic) continue ;
       if ( OrderType ()> 1 ) continue ;
      Profit+= OrderProfit ();
    } 
 return (Profit);} 

   double Profit(){           // функция считает суммарный профит/лосс закрытых позиций для одной валютной пары
   double Profit= 0 ; 
   for ( int i= 0 ; i< OrdersHistoryTotal (); i++){
     if (! OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) continue ;
     if ( OrderSymbol ()!= Symbol ()) continue ;
     if ( OrderMagicNumber ()!=Magic) continue ;
     if ( OrderType ()> 1 ) continue ;
     Profit+= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
   }      
 return (Profit);} 
 

Başlat işlevinde şunu yapıştırın:

     Comment ( "\n" , 
       "\n" ,     
       "\n" , "     Profit                               " , Profit(),
       "\n" , "     CurProfit                          " , CurrentProfit(), 
       "\n" );   
 
CLAIN :

işte senaryo... nasıl gerçeğe dönüşecek?


 bool signal_MACD() 
  { 
     bool signal_MACD = false; 
     double tmp = iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 ); 
     for ( int i= 1 ;i<= 5 ;i++) 
    { 
       if ( NormalizeDouble ( iMACD ( Symbol (),TF,fast_ema,slow_ema,signal_period, PRICE_CLOSE ,MODE_MAIN, 0 )*tmp, 4 )< 0.0 ) 
       { 
          signal_MACD = true; 
           break ; 
       } 
    } 
     return (signal_MACD);
  } 
 
CLAIN :

false yerine true döndürmesini istiyorum ama nasıl yapacağımı bilmiyorum =( söyle lütfen... bir kez hatırlayacağım ve bir daha sormayacağım)


Bir fonksiyon içindeki bir değişken sadece bir değişkendir.

Ve adının ne olduğu önemli değil.

Bu nedenle, bir işlevin bir değer döndürmesi gerekiyorsa, bu değer açıkça döndürülmelidir:

 return ( ... );