エラー、バグ、質問 - ページ 2863

 
Konstantin Efremov:

いいえ、そのような構造では、唯一の解決策は、インジケータをクラスに変換し、クラスのインスタンスとしてExpert Advisorに追加することです、そして、あなたは計算のシーケンスを構築することができます。

ポイントは、インジケーター自体が独立したクラスで、同じタイプの基本的なインジケーターであれば、どれでも動作することです。これは、何かトリッキーな解決策がない限り、非常にまずい。

削除済み  

パズルの質問があります。

2枚の写真を見比べて、何がトリックなのか教えてください。

1.チャート上でExpert Advisorが動作しています。


2.2枚目は同じExpert Advisorです。1回のテスト後のチャートです。


 
可能かどうか教えてください。
#define  VALUE 10

#define  MACROS

#ifdef  MACROS
  // Нужно VALUE увеличить в два раза.
#endif
 
fxsaber:
可能かどうか教えてください。
#define  VALUE 10

#define  MACROS

#ifdef  MACROS
   #ifdef  VALUE
      #undef  VALUE
   #endif
   #define  VALUE 20
#endif

または

#define  DEFAULT_VAL 10

#define  VALUE DEFAULT_VAL

#define  MACROS

#ifdef  MACROS
   #ifdef  VALUE
      #undef  VALUE
   #endif
   #define  VALUE (2*DEFAULT_VAL)
#endif
 
Vladimir Simakov:

または

元のVALUの定義にアクセスできないんです。そうでなければ、もちろん同じ選択肢にします。

 
fxsaber:
可能かどうか教えてください。

なぜかうまくいかない。

#define  VALUE 10

#define  MACROS

#ifdef  MACROS
  // Нужно VALUE увеличить в два раза.
  #define  TMP VALUE
  #undef  VALUE
  #define  VALUE (TMP*2)  // Если заменить на (10*2) - компилируется!
#endif

int OnInit(void)
{
        Print( "VALUE = ", VALUE ); //'VALUE' - undeclared identifier
        return(INIT_FAILED);
}
 
Andrey Khatimlianskii:

なぜかうまくいかない。

#define  INITIAL_VALUE 10
#define  VALUE INITIAL_VALUE

#ifdef  MACROS
  #define  VALUE 2*INITIAL_VALUE
#endif
おそらくこんな感じ
 
TheXpert:
それしかないでしょう

残念ながら、この課題はクリアできていません。

 
フォーラムで投票を作成することはできません。作成をクリックするとトップページに戻ってしまいます。
 
TheXpert:
それしかないでしょう。

では、なぜうまくいかないのでしょうか?

Ilyas@Slava?