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

 
皆さん、こんにちは。mql4のヒストリーで最後に閉じた注文を選択する方法を教えてください。最初に閉じた注文を選択するOrderSelect(0,SELECT_BY_POS,MODE_HISTORY) を使用しています。
 
Sergei Maksimenko:
皆さん、こんにちは。mql4のヒストリーで最後に閉じた注文を選択する方法を教えてください。OrderSelect(0,SELECT_BY_POS,MODE_HISTORY) を使っていますが、最初に閉じた注文は選択されますが、最後の注文はどうすれば選択できるのでしょうか。
0ではなく、OrdersHistoryTotal()-1としてください。
 
new-rena:

小節の価格ではなく、小節の時間変化で小節の変化を把握しやすくなっています。アルゴリズムの最後に、現在の バータイムを記憶し、最初に現在の時間と比較することになります。

例えば、M5バーの場合、バーの最初と5分ごとにのみ現在時刻を 変更する...。

このようなプログラムのテストは、「価格を開く ことによって」行われ、コードのデバッグと最適化のプロセスを大幅にスピードアップさせることができます。

したがって、今何TFなのかを調べて、ちょうど5分後にバーが表示されない場合は四捨五入をしなければならないのですが...。私の場合、コードはとても簡単で負担になりません。もちろん、建値が 変わらない場合もありますが、2本前のバーの合計で確認できます。一般的に、あなたのソリューションの利点について書かれていない場合、私はプログラマーではないので、コードを添付すればよりよく理解できたと思います...。
 
-Aleks-:
だから、今何分目なのかを調べて、5分ちょうどにバーが表示されなければ四捨五入して......。私の場合、コードは非常に簡単で、面倒なことはありません。もちろん始値は 変わらないかもしれませんが、過去2本のバーの合計で確認することができます。一般的に、あなたのソリューションの利点について書かれていない場合、私はプログラマーではないので、コードを添付すればよりよく理解できたと思います...。
Навигатор по форуму и ответы на часто задаваемые вопросы. Настоятельно Рекомендуется к Прочтению! - MQL4 форум
  • www.mql5.com
Навигатор по форуму и ответы на часто задаваемые вопросы. Настоятельно Рекомендуется к Прочтению! - MQL4 форум
 
Artyom Trishkin:

ありがとうございます。コメントを読んで、頭の中で想像していたよりも簡単でした。

 

こんにちは。

エキスパート設定にドロップダウンメニューを作る方法を教えてください。

写真にあるようなありがとうございます。


 
Sergei Konoplev:

こんにちは。

エキスパート設定にドロップダウンメニューを作る方法を教えてください。

写真にあるようなありがとうございます。


コードに私のリストを追加する必要があります。
 
-Aleks-:
だから、今何分目なのかを調べて、5分ちょうどにバーが表示されなければ四捨五入して......。私の場合、コードは非常に簡単で、面倒なことはありません。もちろん始値は 変わらないかもしれませんが、過去2本のバーの合計で確認することができます。一般的に、あなたのソリューションの利点について書かれていない場合、私はプログラマーではないので、コードを添付すればよりよく理解できたと思います...。
//код в фигурных скобках выполнится только один раз, на открытии каждого нового бара М5

datetime prevTime;

if(prevTime!=iTime(Symbol(),PERIOD_M5,0))
   {
     ...
   }
prevTime=iTime(Symbol(),PERIOD_M5,0);
 

どこが間違いなのか?

void CheckValidStop4(string symbol,double price, double &sl) //функция на проверку близких стопов от цены и его исправление
{
    if(sl==0)
    return;
    
    double severs_min_stop = MarketInfo(symbol,MODE_STOPLEVEL)* MarketInfo(symbol,MODE_POINT);
    if(MathAbs(price - sl)<= severs_min_stop)
    {
        if(price>sl)
             sl = price - severs_min_stop;
       else  sl = sl + severs_min_stop;
       
        
    }
    sl = NormalizeDouble(sl,(int)MarketInfo(symbol,MODE_DIGITS));
}
 
Leanid Aladzyeu:

どこが間違いなのか?

エラーコードは
理由: