[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 789

 
Hedin:

プログラマーの皆様へ。
条件が真のときに演算子が実行されない、あるいは実行されるがランダムなモード(繰り返しなど)である理由を教えてください。ロ グにエラーはありません。


コードの修正をお願いします。

if ( MathAbs( ord_sl - (ord_open+First_sell_limit_SL*Point) ) < Point / 2.0 && ...

また、double 型の変数と等しいかどうかを比較することはありません。

 
PapaYozh:


コードを修正する。

また、double 型の変数と等しいかどうかを比較することはありません。


double 型の変数を等価比較できないのはなぜですか?
 
Hedin:

doubleの ような変数は、なぜ等価比較できないのでしょうか?
検索も効かなくなった?
 
Hedin:

double 型の変数が等しいかどうか比較できないのはなぜですか?
こちらをご覧 ください。
 
Necron:
deinitでは、グローバル変数に書き込み、initでは、その変数の値を読み取る、何が問題なのでしょうか? 。

私の理解では、Global Variableはすべての関数の外部で宣言される変数です。グローバル 変数は、特殊関数が開始される前に一度だけ初期化 されます。

つまり、グローバル変数は、次のスタート時にプログラムに渡したいものも含めて、スタート関数の前のプログラム冒頭で宣言されているのだ。そして、ご指摘の通り、deinitで、この変数の値を固定します。init関数が実行される前のプログラム開始時に、私が興味を持っている変数を含む、プログラム開始時に記述されたすべてのグローバル変数が再初期化されることを理解しました。そして、関数initになると、先ほど登録した変数が消えてしまうのです!それとも私が間違っているのでしょうか?

 
いいえ、彼はファイルに格納されているGlobalVariable のことを指しています。
 
ikatsko:

私の理解では、Global Variableはすべての関数の外部で宣言される変数です。グローバル変数は、特殊関数が開始される前に一度だけ初期化されます。

つまり、グローバル変数は、次のスタート時にプログラムに渡したいものも含めて、スタート関数の前のプログラム冒頭で宣言されているのだ。そして、ご指摘の通り、deinitで、この変数の値を固定します。init関数が実行される前のプログラム開始時に、私が興味を持っている変数を含む、プログラム開始時に記述されたすべてのグローバル変数が再初期化されることを理解しました。そして、関数initになると、先ほど登録した変数が消えてしまうのです!それとも私が間違っているのでしょうか?

グローバル変数には 2種類あって、 自分が書いたプログラムのグローバル変数と、端末のグローバル変数、
、記憶が正しければ、アクセスしないと2週間ほどプログラムとは別に保存される......というものです。
例えば、同じ端末で同時に動作する異なるEA間のデータ転送などに使用されます。
必要なのは端末のグローバル変数です。
 
Roger:
いいえ、彼はファイルに格納されているGlobalVariable のことを指しています。
はい、端末のグローバル変数のことです。すでにプライベートメッセージでこの質問があり、私はそれに答えました。
 
Necron:
はい、グローバルターミナル変数のことです。すでにプライベートメッセージでこの質問があり、私はそれに答えました。
もう、わかったよ。そんなこともあるんだ...。がうまくいかなかった...。すみません :)
 
вот, собственно код моментума стандартного из МТ4 - ии??? я не вижу тут 
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
//+------------------------------------------------------------------+
//|                                                     Momentum.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int MomPeriod=14;
 
//---- buffers
double MomBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MomBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mom("+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,MomPeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Momentum                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
   
//----
   if(Bars<=MomPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
      
//----
   
   i=Bars-MomPeriod-1;
   if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      MomBuffer[i]=Close[i]*100/Close[i+MomPeriod];
      i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+
Roger:

それは変な言い方ですね。

doubleiMA(

文字列シンボル、int timeframe、int period、int ma_shift、int ma_method、int applied_price、int shift)

最初の要素です。