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

 
r772ra:


標準的なものを含むすべてのインジケータは、0 barで再描画されます。

ひとことアドバイス...こんな質問があったら、こんな機能がありますよ。

boolWindowScreenShot() 文字列 filename, int size_x, int size_y, int start_bar=-1, int chart_scale=-1, int chart_mode=-1)
現在のチャートの画像を GIF ファイルに保存します。失敗した場合は、FALSE を返す。エラーに関する情報を得るには、関数GetLastError() を呼び出す必要があります。

スクリーンショットは、terminal_directory⇄⇄files Expert Advisor のテストの場合はterminal_directory⇄tester⇄files)またはそのサブフォルダーに保存されます。


全部ではなく一部ですが、ゼロバーに限らず、一般的にゼロバーで作業した方が高くつくというのは、全く同感です。

私はとても混乱しています。スクリーンショットが問題解決に役立つということが理解できないのですが?

 
rigonich:


実は、すべてではありませんし、ゼロバーに限らないものもありますが、一般的にゼロバーでの作業は「割高」というのは絶対的に同意します。

私はとても混乱しています。スクリーンショットが問題解決に役立つということが理解できないのですが?


WindowScreenShotはチャートのスクリーンショットを撮りますが、わかりやすいと思います。ポジションを開くという 機能の直後に置くと

という疑問が湧きますよね。写真で見てみましょう。

 
r772ra:


WindowScreenShotはチャートのスナップショットを取る、これは明らかだと思います。ポジションオープン機能の直後に置くと。

という疑問が湧いてきました。写真をご覧ください。


そんなアシスタントが いるんですね。
 
r772ra:

そんなアシスタントが いるんです。

了解です。ありがとうございます。 おもしろいですね、試してみます。
 
rigonich:

より正確に答えるには、EAのコードを見る必要があります。これは通常、EAが呼び出される指標でどのように動作するかのいくつかの特殊性を考慮に入れていない場合に起こります。エキスパートアドバイザーは、指標値を自分で計算するのではなく、指標バッファから既成の値を取得します。このため、例えば、インジケータの以前の値を記憶する必要がある場合、あるいはインジケータが自ら行う他のことが必要な場合、これらすべてをExpert Advisorに含めなければなりません。あと、たまに「曲がった」指標がありますが、標準のストキャスティクスがあるので関係ないのでは?


返信ありがとうございます、でもあまり役に立ちませんでした、もう一度問題を投稿します、もしかしたら他の誰かがこのテーマについて何か考えているかもしれませんね?

なぜ不要な注文が出るのか理解できません((スクリーンショットでは赤丸で囲まれています)。

ファイル:
 
rigonich:

そうであれば、ヘルプの開発者次第です。


開発者は何の関係もない。:__

( Hour()>=10 || Hour()<20 ) の代わりに、単純に Hour()>=10 && Hour()<20 にすればよかったのです。

と、すべてうまくいきました。

 
皆さん、テスターでEAで使用したトレードとインディケータを可視化ウィンドウに表示させる方法を教えてください。
 

最後の利益確定が0以上なら...」という条件がどのようにコード化されているのか、どこを見ればいいのかご教示ください。

すなわち、すでに決済された取引の会計処理(自動的)。

 
lottamer:

最後の利益確定が0以上なら...」という条件がどのようにコード化されているのか、どこを見ればいいのかご教示ください。

すでに決済された取引の会計処理(自動的)。


https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page4#434230

関数 isCloseLastPosByTake()。

この関数は、武井による最後のポジションを閉じるためのフラグを返す。フラグが立つ -True- TakeProfitが発動された。フラグを下げた -False- ポジションは別の理由で閉鎖されました。より精度の高い検討位置の選定は、外部パラメータを用いて行う。

  • sy- 市場商品の名前。このパラメータを指定すると、指定した楽器の位置のみを考慮するようになります。初期値」は、あらゆる市場商品を意味する。NULLは 現在の楽器を意味します。
  • op- 貿易業務、ポジションタイプ。有効な値:OP_BUYOP_SELL、または-1。初期値-1 は任意の位置を意味する。
  • mn- 位置の識別子,MagicNumber.デフォルト値-1 は、任意の識別子を意味する。
  • //+----------------------------------------------------------------------------+
    //|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
    //+----------------------------------------------------------------------------+
    //|  Версия   : 19.05.2008                                                     |
    //|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
    //+----------------------------------------------------------------------------+
    //|  Параметры:                                                                |
    //|    sy - наименование инструмента   (""   - любой символ,                   |
    //|                                     NULL - текущий символ)                 |
    //|    op - операция                   (-1   - любая позиция)                  |
    //|    mn - MagicNumber                (-1   - любой магик)                    |
    //+----------------------------------------------------------------------------+
    bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
      datetime t;
      double   ocp, otp;
      int      dg, i, j=-1, k=OrdersHistoryTotal();
    
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
          if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
              if (op<0 || OrderType()==op) {
                if (mn<0 || OrderMagicNumber()==mn) {
                  if (t<OrderCloseTime()) {
                    t=OrderCloseTime();
                    j=i;
                  }
                }
              }
            }
          }
        }
      }
      if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
        dg=MarketInfo(sy, MODE_DIGITS);
        if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
        ocp=NormalizeDouble(OrderClosePrice(), dg);
        otp=NormalizeDouble(OrderTakeProfit(), dg);
        if (ocp==otp) return(True);
      }
      return(False);
    }

 
BeerGod:

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page4#434230

isCloseLastPosByTake()関数です。

この関数は、テイクプロフィットによって最後のポジションをクローズするフラグを返します。フラグが立っている -True- TakeProfitが発動されました。フラグを下げた -False- ポジションは別の理由で閉鎖されました。より精度の高い検討位置の選定は、外部パラメータを用いて行う。

  • sy- 市場商品の名前。このパラメータを指定すると、指定した楽器の位置のみを考慮するようになります。初期値」は、あらゆる市場商品を意味する。NULLは 現在の楽器を意味します。
  • op- 貿易業務、ポジションタイプ。有効な値:OP_BUYOP_SELL、または-1。初期値-1 は任意の位置を意味する。
  • mn- 位置の識別子,MagicNumber.デフォルト値-1 は、任意の識別子を意味する。




ありがとうございます、私もKIMさんのLibrariesに出会いました・・・(同志KimはFX界のMARXのようにCAPITALを書いたようです・・・そして私たちは今それを引用(つまり自分のEAに挿入)しています)・・・。最近の取引を示す "フラグ "が、さまざまなバリエーションで表示されます。

ただし、私は#include-を使ったことがないのですが...。

を一言で説明できますか?

を一番上に書いて、# includ (ファイル名 mqh)

でも、コードのどこに関数を書けばいいのでしょうか?

GetTypeLastClosePos()。

で、どうするの?

このうち、どのようなポジションを返してくれるのでしょうか?

int GetTypeLastClosePos(string sy="", int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal(), r=-1;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (t<OrderCloseTime()) {
            t=OrderCloseTime();
            r=OrderType();
          }
        }
      }
    }
  }
  return(r);
}

OrderType() ?

つまり、if(OrderType() ==TRUE ) は、あれとこれをする...ということです。だろう?