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

 
もう一つ、EAを起動すると、最初のローソク足で、その時点ではシグナルが出ていないにもかかわらず、1つの注文がオープンします。どうすれば除去できるのですか?
ファイル:
 
artem artem 始値のみで テストした場合、29件のオーダーが発生するのでしょうか?

+いくつかの注文は、ティックでテストされた場合、明示的に始値を逃しました。スクリーンショットを添付します。

トライ

ファイル:
artem.mq4  13 kb
 
今度は、ティックと始値の両方で同じ数の注文を開くようになりました。同じ期間に合計 23個の注文が あります。ただ、今はなぜか4本目からではなく、7本目のロウソクから入っています。
 
artem artem #:
現在、ティックと始値の両方で同じ数の注文が発注されています。ただ、今は4本目ではなく、7本目のロウソクから入っています。

不要なものをすべて削除...正常に動作しているようです。

ファイル:
artem.mq4  11 kb
 
ターミナルでEA設定の文字列を消せないように区切る方法があれば教えてください。コード中にextern文字列を書くと、その文字列を編集できるようになり、誤って削除すると「リセット」を押して復元しなければならないが、そうすると、すべての設定がリセットされてしまうのである。もちろん、あらかじめセットファイルに保存しておくこともできますが、「石の表」を作ることができるのかどうか、ちょっと気になるところです)
 

確認したところ、ティックと始値の両方で...。ら・ぼ・た・え・と!!!!

MakarFX さん、ありがとうございます!!!!このパズルに手を出してから2週間が経ちますが、今日までずっとダメでした。改めて、本当にありがとうございました文字通り、あと数回の説明で、これ以上引き留めることはありませんし、これだけ多くの時間を費やしたのですから。実は、ここに興味があるんです。


1. 私が理解する限り、「確認用ローソク足」の数を変えたい場合は、定数の数字を別のものに変えればいいだけなのでは?

void OnTick()
  {
//---
   StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL); 
   //---
   if(newbar!=Time[0])
     {
      if(CheckForOpen()!=Start)
        {Start=CheckForOpen(); cnt=1;}
      else
        {cnt+=1;}
      //---
      if(cnt==8)
        {
         // Открытие ордера по методу Пуриа
         if(CheckForOpen()==0) // Если сигнал для покупок 
           {
            if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
              {Print("BUY OK");}
              else {Print(GetLastError());}
           } 
         if(CheckForOpen()==1) // Если сигнал для продаж 
           {
            if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
              {Print("SELL OK");}
              else {Print(GetLastError());}
           }
        }   
      newbar=Time[0];
     }
  }

2. Expert Advisorを起動すると、シグナルがないのに、最初のローソク足でSELL注文が発注されています。つまり、このまさに最初の注文は冗長であり、EAを起動したばかりだからといって、最初の注文ですぐに取引を開始してはいけないということです。これはどうしたら直るのでしょうか?Initがこの原因になっているという考えがあるのですが、これを "false "に変更するか、このInitを完全に削除すればいいのでしょうか?

bool OrderBuy = true, OrderSell = true, Order = false, Init = true;

最後に、このままにしておいて、複数の通貨ペアで同時に取引するように実行しても、そのまま動作するのでしょうか?あるいは、バグが出ないように、コードに何か別のものを処方しなければならない、など。特に、このEAが複数の通貨ペアで同時に動作するのであれば?

実は、私が興味を持っているのはそれだけなのですが、とにかく、いつもどうもありがとうございます。もし自分でやっていたら、どれだけの時間がかかったかわからない)

 
artem artem #:

確認したところ、ティックと始値の両方で...。ら・ぼ・た・え・と!!!!

MakarFX さん、ありがとうございます!!!!このパズルに手を出してから2週間が経ちますが、今日までずっとダメでした。改めて、本当にありがとうございました文字通り、あと数回の説明で、これ以上引き留めることはありませんし、これだけ多くの時間を費やしたのですから。実は、ここに興味があるんです。


1. 私が理解する限り、「確認ローソク足」の数を変えたい場合は、定数の数字を別の数字に変えればいいだけなのですね。

2. Expert Advisorを起動すると、シグナルがないのに、最初のローソク足でSELL注文が発注されています。つまり、このまさに最初の注文は冗長であり、EAを起動したばかりだからといって、最初の注文ですぐに取引を開始してはいけないということです。これはどうしたら直るのでしょうか?Initがこの原因になっているという考えがあるのですが、これを "false "に変更するか、このInitを完全に削除すればいいのでしょうか?

最後に、このままにしておいて、複数の通貨ペアで同時に取引するように実行した場合、その通りに動作するのでしょうか?あるいは、バグが出ないように、コードに何か別のものを処方しなければならない、など。特に、このEAが複数の通貨ペアで同時に動作するのであれば?

実は、私が興味を持っているのはそれだけなのですが、とにかく、いつもどうもありがとうございます。もし自分でやってみたら、どれだけ時間がかかるかわからない)

1) はい、「確認用ローソク足 」の数の値です。

2)いいえ、最初の1つでは、唯一の"確認のろうそく "の 与えられた番号の後に、開いていない

3)マジックを変更し、任意のペアに装着する

マジックを外部変数にした方が良い

 
Ivan Butko #:
ターミナルでEA設定の文字列を消せないように区切る方法があれば教えてください。コード中にextern文字列を書くと、その文字列を編集できるようになり、誤って削除すると「リセット」を押して復元しなければならないが、そうすると、すべての設定がリセットされてしまうのである。もちろん、セットファイルに保存することもできますが、「石のタブロー」を作ることが可能かどうか、ちょっと気になります)
ENUMを作成する
 
MakarFX #:
ENUMを行う

試してみます、ありがとうございました。

 
Ivan Butko #:

試してみます、ありがとうございました。

enum MODE
  {
   MODE_1=1,    // Мертвая строка
  };
//--- input parameters
input MODE mode= MODE_1; // Эта строка