初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 794

 
007yurik:

友よ、人形を助けよ。考え方は次のとおりです。Ind "変数が設定されたレベルに達すると、"Ind "が輻輳しなくなるのを待ちながら "Value "の方向転換を待つことに切り替わる。


   if(Ind[0]<=-0.7)
     {
      while(Value[3]>Value[2]<Value[1])
        {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0)
           {
            Recount=true;
            return;
           }
        }
      if(BuyPosOpen) BUY_Open=true;
     }


どのような方法が正しいのでしょうか?

   if(Ind[0]<=-0.7)
     {

置き換える

   bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
     {
      pravda=true;
 
007yurik:

...


pivomoe:

...


コードを正しく挿入してください:フォーラムにコードを正しく挿入して ください

 
007yurik:

友よ、人形を助けよ。考え方は次の通りです。変数「Ind」が設定値になったら、「Value」の方向転換を待つことに切り替え、その間は「Ind」を再確認しない。

正しい方法とは?

ここに間違いがあるようです。

while(Value[3]>Value[2]<Value[1])

そうでなければならないのです。

while(Value[3]>Value[2] §§ Value[2]<Value[1])
 
Ivan Ivanov:

ここに間違いがあるのでは?

そうでなければならないのです。

キーボードのどこに段落記号があるのですか?無効化されたと思っていたのに・・・。

while(Value[3]>Value[2] §§  Value[2]<Value[1])
 
Ivan Ivanov:

ここに間違いがあるのでは?

そうでなければならない。

で何とかなる、とは一概には言えません。
while(Value[2]<Value[1])
 
pivomoe:

置き換える

ちゃんとやったら(怪しいけど)ハングアップする、どうやらループから抜け出せないようだ。
 bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
   pravda=true;
   
   {   
      
      while(Value[2]<Value[1])
         {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0) {Recount=true; return;}                 
          }
          
         if(BuyPosOpen) BUY_Open=true;     
                                                  
         if(SellPosClose) SELL_Close=true;
         UpSignalTime=datetime(SeriesInfoInteger(Symbol(),InpInd_Timeframe,SERIES_LASTBAR_DATE))+TimeShiftSec;
         }
 
007yurik:
もし私が正しくやったのなら(疑わしいが)、ハングアップする、どうやらサイクルから抜け出せないようだ。
 if(pravda || Ind[0]<=-0.7)
 {
   pravda=true;         
 
pivomoe:
試してみましたが、同じです。 Indがレベルを超えるとハングアップしてしまいます。
 
1
007yurik:
試してみましたが、同じです。 Indがレベルを超えるとハングアップします。

1.bool pravda をグローバルにする。(https://www.mql5.com/ru/docs/basis/variables/global)

2.whileをifに置き換えてください。

3.手順2のifが成功したら、pravda=falseを返す。

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
007yurik:

友よ、人形を助けよ。考え方は次のとおりです。変数「Ind」が所定のレベルに達したら、「Ind」が再びチェックされないのを待ちながら、「Value」の方向転換を待つという方法に切り替わる。




正しい方法とは?

whileループの間にインジケータが再計算されるのは間違いないでしょうか?
理由: