MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1239

 
BarCloseB1 = iClose(nameSym,xPeriod,xshiftBar);
BarCloseB1Signal = iClose(nameSymSignal,xPeriod,xshiftBar)

ごきげんよう。

私は、新しい時間足のバーを開くときに、現在の楽器の終値ともう1つ(現在のバーのシグナルのもの)を学習します。

つまり、xshiftBar = 1なら、シグナルはxshiftBar= 2、つまり1本分多くなります。

 
Vitaly Muzichenko:

ソフトウェア、シグナル、コンピュータパワーの販売であるこのリソースから稼いだものだけを引き出すことができます。入力されたものは、このリソースにしか使えません。

Vitaly、あなたは間違っている。まず出金して、必要なときに、必要なだけ入金すればいいのです。

 
Yerkin Sagandykov:

ごきげんよう。

私は、新しい時間足のバーを開くときに、現在のシンボルの終値ともう1つ(現在のバーのシグナルのもの)を学習しています。

つまり、xshiftBar = 1なら、シグナルはxshiftBar= 2、つまり1本分多くなります。

これを確認するには、変数を値1と値2に置き換えます。そうすれば、どこにエラーがあるのかがわかります。

 
Alekseu Fedotov:

アイカスタムで

ありがとうございます。でも、描画レベルがすぐに飛んでしまうのはなぜか、教えていただけませんか?
ファイル:
snake.mq4  16 kb
 
Alexey Viktorov:

確認するには、変数を 1 と 2 に置き換えてください。そうすれば、どこにエラーがあるのかがわかります。

問題は、私の意見では、変数の値ではありません。 私はちょうど新しい時間の到着時に私のコードで再計算を持っている。 そしてそれは、現在のシンボルで新しいバーが 表示され、バー= 1の値を計算することが判明したが、信号シンボルで新しいバーがまだ形成または何かとバー= 2の値を計算されていません

 if  ( iTime(nameSym, LPeriod, 0 ) == counted_bar ) return; 
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Yerkin Sagandykov:

問題は、私の 意見では、変数の値ではありません。 私はちょうど私のコードで再計算を持っていると、それは現在のシンボルのための新しいバーが 表示され、バー=1を計算するが、信号のシンボルのための新しいバーがまだ形成されていないとバー=2用の値を計算することが判明した。

そうすれば、新しいバーがシグナルシンボルに表示されることを確実に伝えることができます。そして、何とかこの新しいバーを待ちます。いくつかのオプションがあり、どれを使うかはあなた次第です。

 

ごあいさつヒントをお願いします。

特定のEAの注文の最大ドローダウンを計算したいのですが。

全順位で数えるのであれば、そうしていますし、MT自体の結果とも合致しています。

      if(AccountEquity()>max_equity){
         max_equity=AccountEquity();
      }   
      if(max_drawdown_total<max_equity-AccountEquity()){
         max_drawdown_total=max_equity-AccountEquity();
      } 

あるExpert Advisorではこのように計算しています。

      if(MoneyCount()>max_equity_1){
         max_equity_1=MoneyCount();
      }   
      if(max_drawdown_total_1<max_equity_1-MoneyCount()){
         max_drawdown_total_1=max_equity_1-MoneyCount();
      }

double MoneyCount(){
   double count=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
            count+=(OrderProfit()+OrderSwap()+OrderCommission()); //
         }   
      }
   }
   return count;
}

テスターでは同じ結果になるはずなのですが、1%強の差があります(すぐには出ない)。何を間違えてカウントしているのだろう?

 
こんにちは。mql4と5、どちらの言語がいいか教えてください。また、mt4にはなぜかメタエディタ5が内蔵されていますが、これもmql4用なのでしょうか?
 
こんにちは、MT4でATRとMAを重ね合わせるなど、インジケーターの値をコードに反映させる方法を教えてください。
 
ZahvatkiN:
こんにちは、MT4でATRをMAに重ねるなど、インジケーターの値を別のものに重ねる場合、コードに反映させる方法を教えてください。

MQL4ではiMAOnArray()を使用し、MQL5ではiMAハンドルを作成する際に、移動平均を 計算する価格ではなく、以前に作成したATRのハンドルを指定します。