[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 424

 
再投稿
Ilya12345:

皆さんこんにちは!何日もコードをいじっているのですが、うまくいきません。条件がうまくいかない。変数Zには常に最後の値が割り当てられ、この場合Z=1に相当する。条件を満たすためには、何を直せばよいのでしょうか?誰が助けてくれるの?

X = MathFloor(PriceTarget)。
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
{Z = 0.03125;}

if (0.03126 < Y <= 0.0625)
{Z = 0.0625;}

if (0.0625 < Y <= 0.09375)
{Z = 0.09375;}

if (0.09375 < Y <= 0.125)
{Z = 0.125;}

if (0.125 < Y <= 0.15625)
{Z = 0.15625;}

if (0.15625 < Y <= 0.1875)
{Z = 0.1875;}

if (0.1875 < Y <= 0.21875)
{Z = 0.21875;}

if (0.21875 < Y <= 0.25)
{Z = 0.25;}

if (0.25 < Y <= 0.28125)
{Z = 0.28125;}

if (0.28125 < Y <= 0.3125)
{Z = 0.3125;}

if (0.3125 < Y <= 0.34375)
{Z = 0.34375;}

if (0.34375 < Y <= 0.375)
{Z = 0.375;}

if (0.375 < Y <= 0.40625)
{Z = 0.40625;}

if (0.40625 < Y <= 0.4375)
{Z = 0.4375;}

if (0.4375 < Y <= 0.46875)
{Z = 0.46875;}

if (0.46875 < Y <= 0.5)
{Z = 0.5;}

if (0.5 < Y <= 0.53125)
{Z = 0.53125;}

if (0.53125 < Y <= 0.5625)
{Z = 0.5625;}

if (0.5625 < Y <= 0.59375)
{Z = 0.59375;}

if (0.59375 < Y <= 0.625)
{Z = 0.625;}

if (0.625 < Y <= 0.65625)
{Z = 0.65625;}

if (0.65625 < Y <= 0.6875)
{Z = 0.6875;}

if (0.6875 < Y <= 0.71875)
{Z = 0.71875;}

if (0.71875 < Y <= 0.75)
{Z = 0.75;}

if (0.75 < Y <= 0.78125)
{Z = 0.78125;}

if (0.78125 < Y <= 0.8125)
{Z = 0.8125;}

if (0.8125 < Y <= 0.84375)
{Z = 0.84375;}

if (0.84375 < Y <= 0.875)
{Z = 0.875;}

if (0.875 < Y <= 0.90625)
{Z = 0.90625;}

if (0.90625 < Y <= 0.9375)
{Z = 0.9375;}

if (0.9375 < Y <= 0.96875)
{Z = 0.96875;}

if (0.96875 < Y <= 1)
{Z = 1;}
}
W=X+Zです。




Ilya12345 さん

皆さん、こんにちは!何日もコードをいじっていますが、成功しません。条件がうまくいかない。変数Zには常に最後の値が割り当てられ、この場合Z=1に相当する。条件を満たすためには、何を直せばよいのでしょうか?どなたか助けてください。


お試しください

X = MathFloor(PriceTarget);
Y = (PriceTarget - X);
{
if (0 < Y <= 0.03125)
Z = 0.03125;
  else
    if (0.03126 < Y <= 0.0625)
    Z = 0.0625;
      else
        if (0.0625 < Y <= 0.09375)
        Z = 0.09375;
          else
            if (0.09375 < Y <= 0.125)
            Z = 0.125;
              else
                if (0.125 < Y <= 0.15625)
                Z = 0.15625;
                  else
                  if (0.15625 < Y <= 0.1875)
                  Z = 0.1875;
                    else
                      if (0.1875 < Y <= 0.21875)
                      Z = 0.21875;
                        else
                          if (0.21875 < Y <= 0.25)
                          Z = 0.25;
else
if (0.25 < Y <= 0.28125)
Z = 0.28125;
  else
    if (0.28125 < Y <= 0.3125)
    Z = 0.3125;
      else
        if (0.3125 < Y <= 0.34375)
        Z = 0.34375;
          else
            if (0.34375 < Y <= 0.375)
            Z = 0.375;
              else
                if (0.375 < Y <= 0.40625)
                Z = 0.40625;
                  else
                    if (0.40625 < Y <= 0.4375)
                    Z = 0.4375;
                      else
                        if (0.4375 < Y <= 0.46875)
                        Z = 0.46875;
else
if (0.46875 < Y <= 0.5)
Z = 0.5;
  else
    if (0.5 < Y <= 0.53125)
    Z = 0.53125;
      else
        if (0.53125 < Y <= 0.5625)
        Z = 0.5625;
          else
            if (0.5625 < Y <= 0.59375)
            Z = 0.59375;
              else
                if (0.59375 < Y <= 0.625)
                Z = 0.625;
                  else
                    if (0.625 < Y <= 0.65625)
                    Z = 0.65625;
                      else
                        if (0.65625 < Y <= 0.6875)
                        Z = 0.6875;
                          else
                            if (0.6875 < Y <= 0.71875)
                            Z = 0.71875;
else
if (0.71875 < Y <= 0.75)
Z = 0.75; 
  else
    if (0.75 < Y <= 0.78125)
    Z = 0.78125;
      else
        if (0.78125 < Y <= 0.8125)
        Z = 0.8125; 
          else
            if (0.8125 < Y <= 0.84375)
            Z = 0.84375;
              else
                if (0.84375 < Y <= 0.875)
                Z = 0.875;
                  else
                    if (0.875 < Y <= 0.90625)
                    Z = 0.90625;
                      else
                        if (0.90625 < Y <= 0.9375)
                        Z = 0.9375;
                          else
                            if (0.9375 < Y <= 0.96875)
                            Z = 0.96875;
                              else
                                if (0.96875 < Y <= 1)
                                Z = 1;
} 
W = X + Z;
 
sergeev:



は、このように試してみてください。


works!!!real thanks!!! 特に迅速な対応に感謝します。
 
Ilya12345:

works!!!real thanks!!! 特に迅速な対応に感謝します。


こんなところにも。

double mK[] ={0,0.03125,0.0625....,1};



 

   for (int i=0;i<(ArraySize(mK)-1);i++)
   
   {
    
     if (y>mK[i] && y<=mK[i+1]) 
        {z=mK[i+1];
         break;
        }
   } 
 

グローバル変数 について2点ほど質問させてください。

質問1:ハードディスクに保存されると書かれています。そのアクセス時間は、ファイルからデータを読み出すときと同じくらい長いのでしょうか、それとも普通の変数を読み出すときと同じくらい速いのでしょうか?

質問2:グローバル変数の型はdoubleのみとありますが、intやstringなど他の型のデータを格納したい場合はどうすればよいのでしょうか?

 
KONDOR:

1.スピードは文句のつけようがない。

2.どこに書いてあるのか、すべてのタイプがグローバルに対応できる。

"文句を言わない "というのは、実は数学的な概念ではないんです。

ここに書いてあります。

 
Elenn:

"文句を言わない "というのは、ある意味、数学的な概念ではないんです。

ここに書かれています。

グローバル変数がハードディスクに保存され、一定時間保存されると書かれています。プログラム(ターミナル、インジケーター、アドバイザー)の実行中は、すべての変数はRAMにあり、すなわち、G.P.の値はプログラムが初めて起動したときにのみディスクから読み込まれます。
 
Temnyj:
グローバル変数がハードディスクに保存され、一定時間保存されると書かれています。プログラム(ターミナル、インジケーター、アドバイザー)の実行中、すべての変数はRAMに保存されます。つまり、G.P.値はプログラムが初めて起動したときにのみディスクから読み込まれます。

情報をありがとうございました。2つ目の質問はどうでしょうか?
 
Elenn:

情報をありがとうございました。2つ目の質問はどうでしょうか?

2つ目の質問がよくわからないのですが。

ここで 読んだ方がいい。

 
Temnyj:

2つ目の質問がよくわからないのですが。

こちらから お読みください


プログラムを終了(コンピュータを再起動など)すると、変数はすべて失われます。ただし、グローバル変数はハードディスクに保存されるため、例外とする。ただし、double 型に限る。他の型(例えばintやstring)の変数を格納する必要がある場合、どうすればよいのでしょうか?ここで不明なのは?

 
Elenn:


プログラムを終了する(コンピュータを再起動する等)と、変数が失われます。ただし、グローバル変数はハードディスクに保存されるため、例外とする。ただし、double 型に限る。他の型(例えばintやstring)の変数を格納する必要がある場合、どうすればよいのでしょうか?ここで不明なのは?

現在のプログラムレベルのグローバル変数とターミナルレベルのグローバル変数があります。前者は初期化時にリセットされ、後者はリセットされない。明らかに後者のことを言っていますね。

もちろん、例えばdoubleのような配列を100項目からこのような変数に隠すことは難しいでしょう。そのような目的には全く使わない方が良い。

ファイルを使用して、あらゆる種類のデータを保存します。そこには何の制限もありません。そしてこの方法は、常に誰もが使っている。