[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 230

 

こんにちは。

ペアウィンドウに特定のペアの利益を表示するインジケータ/スクリプトを探しています。つまり、3~5組のペアを取引する場合、そのうちの1組の利益を素早く計算することは、積み上げやロットがあるとかなり難しいのです。

どなたかご意見をお持ちの方がいらっしゃいましたら、ぜひお願いします。

 
あなたの心が望むものなら何でも。
公平性とバランス指標
 
ありがとうございました。:)
 
PapaYozh:


おそらく、signal_MACD()関数を微調整しているのでしょう。

まあ、それでも何か返ってくるということです。


falseではなくtrueを返すようにしたいのですが、やり方がわかりません =( 教えてください。一度覚えれば二度と聞きません )
 

これが台本だどうすればtrueを返すようになりますか?

 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:

これが台本だどうすればtrueを返すようになりますか?


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:

こんにちは。

ペアウィンドウに特定のペアの利益を表示するインジケータ/スクリプトを探しています。つまり、3~5組のペアを取引する場合、そのうちの1組の利益を素早く計算することは、積み上げやロットがあるとかなり難しいのです。

どなたかご意見をお持ちの方がいらっしゃいましたら、ぜひお願いします。

 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);} 
 

スタート機能に挿入します。

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

これが台本だどうすればtrueを返すようになりますか?


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ではなくtrueを返すようにしたいのですが、やり方がわかりません =( 教えてください... 一度覚えたら二度と聞きません )


関数内の変数は、あくまでも変数です。

呼び方は問わない。

したがって、関数が値を返すべき場合は、この値を明示的に返す必要があります。

return( ... );