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

 

ある機能が合わなかった。

bool wC_Redraw()
   {
   if(wC_iStop != -1)
      {
      ObjectDelete(wC_sName);
      return(true);
      }
   if(wC_bFirst)
      if( ! ObjectSetText(wC_sName, "1"))
         return(false);
   int iTimeframe = tlC_GetTimeframe();
   double dLockPrice = tlC_GetPriceLock();
   datetime datMoveTime[2];
   datMoveTime[0] = iTime(NULL, iTimeframe, wC_iMoveBar[0]);
   if(datMoveTime[0] == 0)
      return(false);
   if( ! ObjectMove(wC_sName, 0, datMoveTime[0], wC_dMovePrice[0]) )
      return(false);
   
   if(dLockPrice == MYEMPTY)
      {
      datMoveTime[1] = iTime(NULL, iTimeframe, wC_iMoveBar[1]);
      if(datMoveTime[1] == 0)
         return(false);
      if( ! ObjectMove(wC_sName, 1, datMoveTime[1], wC_dMovePrice[1]) )
         return(false);
         
      if(wC_bScarp)
         {
         if( ! ObjectSet(wC_sName, OBJPROP_RAY, false) )
            return(false);
         if( ! ObjectSet(wC_sName, OBJPROP_STYLE, SCARP_LINE_STILE) )
            return(false);
         if( ! ObjectSetText(wC_sName, "0"))
            return(false);
         //ObjectSet(wC_sName, OBJPROP_COLOR, SCARP_LINE_COLOR);    
         return(true);
         }
      else
         ObjectSet(wC_sName, OBJPROP_RAY, true);
      }
   else
      if( ! ObjectMove(wC_sName, 1, datMoveTime[0], dLockPrice) )
         return(false);
      
   if( ! tlC_Save())
      return(false);
   
   return(true);
   }
 
alsu:

いいえ、現時点ではt3です。ポイントはt3がバーの最初の ティックであり、まだ計算が実行されていないため、IndicatorCounted()の値がまだ変化する時間がないことです - それは関数start()が仕事を終えた後にのみ起こります。この関数は計算されたバーの数を表示するので、与えられたバーの少なくとも1ティックが計算されるまで、この値を変更する意味はありません。したがって、t3 の時点ではまだ 299 と表示されていますが、次のティックでは 300 になっています。

これではっきりしたかな?

そうですね、その方が納得できますね、ありがとうございます。
 
アドバイザーが働くと、コメントが画面左上に表示されます。どうして100~200pipsも右に移動できるのでしょうか?通常、そのコーナーでは文字が重なり、何も読めませんから...。((((
 
w_ersoc:
EAを起動すると左上にコメントが表示されますが、どうすれば100~200pipsほど右に移動できるのでしょうか。(((

解説 文の冒頭にスペースを入れるのが最も簡単です。

とか、こんな感じ。

   ObjectCreate("label_object1", OBJ_LABEL, 0, 0, 0);  
   ObjectSet("label_object1", OBJPROP_XDISTANCE, 720);  
   ObjectSet("label_object1", OBJPROP_YDISTANCE, 45);
   ObjectSetText("label_object1", StringConcatenate("Процент отрицательных %:     ", PercentMinus), 8, "Lucida Console", NavajoWhite);
   



 
moskitman:

解説文の冒頭にスペースを入れるのが最も簡単です。

ぐらい

ありがとうございました!)
 
上に投稿した内容について、少し説明したいと思います。例えば、MKL4で車のモデルを作るというタスクがあります。車には、油圧、クランクシャフト回転数、冷却水温度などの特性があることが分かっています。しかし、少し抽象化すると、クルマに何を求めているのか、前進するのか、後退するのか、左へ行くのか、右へ行くのか、がわかる。このため、すべてのプロパティをパッケージ内で変数として宣言し、そのままにしています。外部環境との相互作用については、forward()、backward()、left()、right()の各関数を残しています。基本的にはカプセル化のにおいがする。これは、プロジェクトを 複雑化するときに大いに役立ちます。
 
2つの価格を比較したいのですが、どのように書けばいいですか?
Close[2]>=Open[1]

が、Open[1] は1pt分下がっていると書く必要があります。

小数点以下が5桁なので、こう書きました。

Close[2] >= (Open[1]-10*Point)

が、この言葉は機能しないので間違いであることが判明しました。

どう書くのが正解なのか

 
kilnart:

が、この期限はうまくいかないので、間違っていることが判明しました。

具体的に何がうまくいっていないのでしょうか?
 
kilnart: 正しい綴りは?

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

if(Digits==5){
   if(Close[2]-Open[1]>=10*Point);// цена больше на 10 пп в 5-ти знаке
}
if(Digits==4){
   if(Close[2]-Open[1]>=Point);// цена больше на 1 пп в 4-х знаке
}

//или так ...

switch(Digits){
   case 5: if(Close[2]-Open[1]>=10*Point);// цена больше на 10 пп в 5-ти знаке
   case 4: if(Close[2]-Open[1]>=Point);// цена больше на 1 пп в 4-х знаке
}
 
sergeev:
具体的に何がうまくいっていないのでしょうか?


を選択すると、ポジションは開きません。