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

 
ANDREY:

私はテスターで1つの安定した統計パターンを見つけました。それは2008年以来、許容できるドローダウンで着実に利益を出しているものです。いろいろなペアやフレームなどでテストする必要がありますね。
しかし、いくつかのパラメータを同時に使ってテストする必要があります。最適化には非現実的な時間がかかりますし、私が必要とするものをもっと速くテストするコードもすでに書いてあります。そして今、私は自分のコードを改良しています。つまり、テスターでさらに速く、あるいは可能な限り速く動作するようにしたいのです。私のコードの主なアルゴリズムは、各ローカルミニマムの後、30ポイントで注文を開始しています。だから、なるべく早くやるようにしています。

局所極限をどのように特定するのか説明できれば、作業はより簡単になります。

もし、フラクタルインジケーターが それに適しているのであれば、2本目のバーでフラクタルの存在を確認し、この値から必要な30ポイントまたはpips...好きなものを計算すればいいのです。

 
MakarFX:

コード内のチェックは読み込まれませんが、どうしても試したい場合は

試してみました。間違った注文を再び開く(時間、価格、数量の点で)。

あなたのコード

double LoU;
int OnInit()
  {
   LoU=Bid;
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid;
     }
  }


ありがとうございました。

 
Alexey Viktorov:

局所極限をどのように定義するのかを説明できれば、作業はより簡単になります。

それに適したFractalsインジケータが あれば、2本目のバーでフラクタルの存在を確認し、必要な30ポイントまたはpipsをカウントする...好きなようにします。

極値とは、注文を出す際の局所的な最小値を意味し、この最小値は各ティックまたはローソク足で最小値を確認することで定義されます。そして、これはまさに私が悩んでいることなのです。必要なポジションで注文を出すために、すべてをもっと速くしたい。

 
ANDREY:

極値とは、注文が発注された後の局所的な安値と理解した場合、各ティックまたはローソク足の最低価格を確認することでその安値を決定します。そして、これはまさに私が悩んでいることなのです。必要なポジションで注文を出すために、すべてをもっと速くしたい。

極限は局所最小値または 局所最大値である。どのように定義するのですか?

 
Alexey Viktorov:

局所極限をどのように定義するのかを説明できれば、作業はより簡単になります。

Fractalsインジケータが適して いる場合、2本目のバーでフラクタルの存在を確認し、この値から必要な30ポイントまたはpipsを計算します...お好きなように。

フラクタルのインジケーターは私には合わないと思います。多くの注文を逃すことになる。

私のコードで開いた注文で、各ティックでの価格チェックが行われたものは青くハイライトされています。この場合、フラクタル・インディケーターは私にとって必要なことは何も言っていないと思います。

 
Alexey Viktorov:

極端とは、局所的な最小値または 最大値のことである。どのように定義するのですか?

私の場合、最低限です。

 
ANDREY

何ですか?

Pr

どのように初期化するのですか?

 
MakarFX:
置き場所にもよりますが

例えば、隣接する2つの注文のオープニングの間など。つまり、前回のオープンオーダーのバーを記憶し、価格がこの関数が定義する 安値を30ポイント上回ったらすぐにオーダーをオープンするのです。しかし、この場合、この関数はティック 毎に呼び出されなければならない。石鹸のシロモノを変える......。

 
ANDREY:

ソープのシロモノを変える......。

さらに悪いことに...やはりバーの本数を知る必要がある


微調整をした ...こころがける

 
MakarFX:

何ですか?

どのように初期化するのですか?

double LoU,Pr;
void OnTick()//484
{
Tick++;
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
Pr=LoU;
LoU=Bid;
}
}
Prは30pips後に1回だけ注文を出すようにするための変数です。この変数がない場合は、毎回のクリックで 開く