EAを "教える" !!! [指定した時間内に、私が望んだ数の取引(注文ではない)を行いました]。

 
ごきげんよう!!!プログラマーさん、Expert Advisorに一定の取引回 数を「教える」ことは可能ですか?
 
BeerGod:
一定期間のみ、または同時刻のオープンポジションの合計数?

その中に時間間隔がすでに定義されている。指定した時間内に必要な数の取引(注文ではない)を行う必要があります。
 
sergeev:

質問を拡大解釈して繰り返してください。


例えば、私のEAが注文を出した場合、一定時間が経過すると全ての注文が決済されます(結果が出ます)。EAが再び注文を出すと、一定時間が経過して注文が終了します(結果を得ました)。そして、EAがそれ以上開かない、つまり、切断される。また、先ほども言いましたが、EAの時間枠は調整可能で、時間枠内の取引回数を設定することができます。Expert Advisor の設定の オプションウィンドウに、取引数(オープンオーダーの数と混同しないように)を設定するオプションが追加されているはずです。
 

最も簡単でわかりやすい方法は、注文履歴 全体をみて、ある時間間隔に何件の注文があったかを数えることです。これはテストに時間がかかるので、もし行うなら、不必要に履歴を走らせないように、注文が開かれる直前(すべてのオープニングチェックの後)に行うべきです。

 
Rapitvina:

その中に時間間隔がすでに設定されています。指定した時間内に必要な数の取引(注文ではない)を行ってほしい。
必要 数を超えては いけない(簡単にできる) - あるいは必要数以下であってはいけない(そうすると応募条件の問題が発生する)?
 
Rich:
必要数以上には ならない(やりやすい)-のか、必要数以下にはならない(そうすると参入条件が曖昧になる)のか。

何が明確でないのか?入力条件は、時間間隔によって定義される......。
 
Rapitvina:

私が望むのと同じくらい、彼もコミットしなければならないのです。

:)彼はできるのか?
 
Integer:

:)彼はできるのか?

はい、できます。彼は毎日やってくれているんだから、自分でON/OFFボタンを押せばいいんです。
 
Rapitvina:

そうなります。ON/OFFボタンを押すだけで、毎日やってくれます。


イ・キムの機能はこちら

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после открытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}

アドバイザーからの呼びかけ

If(SecondsAfterOpenLastPos()>300) //300- 5 минут,600- 10 минут И.Т.Д
は好きな時間を設定する......、いや、そっちじゃない?

 
r772ra:
頃合いを見て......、いや、そっちじゃない?


の場合、与えられた時間範囲での注文数をカウントする関数が必要です。
 
sergeev:

の場合、指定した時間範囲での注文数をカウントする関数が必要です。

いいえ、端末のフィールドですべての注文が終了しているため、注文をカウントする必要はありません。