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

 
ANDREY:
Prは30pips後に1回だけ注文を出すようにするための変数です。この変数がない場合は、毎回のクリックで 開く
if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0))
{LoU=Bid;}

だから、その変数は必要ない...そして、すでに負荷は少ないのです)

 
MakarFX:
さらに悪いことに...まだバーの数を知る必要がある


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

しました。同じです。
あなたのコード

double LoU,Pr;
int OnInit()
  {
   LoU=Low[0];
  }
//+------------------------------------------------------------------+
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=Low[0];
     }
  }


 
MakarFX:

だからこの変数は必要ない...そしてすでに負荷は少ない)

必要ないのかもしれない。でも、悩んでいるのはそっちじゃなくて......。

 
ANDREY:

おそらく必要ないでしょう。でも、悩んでいるのはそっちじゃなくて......。

1)スピードに悩んでいるなら、どんなコードの最適化も プラスになる。

2) 起動時のLoU初期化がないからといって、結果に差が出るのは何とも...。EMPTY

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


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

Bid - Low[ ] >= 30 pipsの場合、注文を出す。しかしBidが この Low[ ] 30pips上回った 後、このLow[ ]の 数を知るにはどう すればよいでしょうか
 
ANDREY:
あるいは、Bid - Low[?] >= 30 p. であれば、注文を出すべきでしょう。しかしBidがLow[ ] より30ポイント高くなった後のLow[ ] の数をどうやって知る ことができるのでしょうか?

また、Bidが 下がるということは、安値を更新するということですが、どの安値から計算すればいいのでしょうか?

 
MakarFX:

1)スピードに悩んでいるなら、どんなコードの最適化も プラスになる。

2) 起動時にLoUの初期化をしないことによる結果の違いは、何の意味もないのでは...?EMPTY

では、宣言時にLoUに 値を代入すれば、コードの実行速度は格段に 向上するのでしょうか?

2010年1月4日からの最初のバーの始値を割り当てました。

double LoU = 1.6121,Pr;
void OnTick()//531
{
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);
Pr=LoU;
LoU=Bid;

}
}
 
MakarFX:

そしてBidが 下がるということは、安値を更新するということですが、何から計算すればいいのでしょうか?

下がってもいい、主なものは30pipsで注文が開くことだ。そして、開封後は価格を下げて新しい最低値を見つけるようにします。現在のBidがあり、Low[ 50]から30ポイント離れていて、注文を開くことができると想像してください。 ( Bid - Low[ 50] > 30 points) - 注文を開く場合、それが50本目のローソクの安値だとどうやって知るのでしょうか。ですから、この場合は、ローカルミニマムの前ではなく、その後を 確認する必要があります。
そしてこの場合、注文を出した後にどれだけ価格が下落しても問題ありません。

 
ANDREY:

フラクタルインディケーターは自分には合わないと思う。多くの注文を逃すことになる。

私のコードで開いた、各ティックで価格をチェックする注文は、青色でハイライトされています。この場合、フラクタルは私にとって必要なことは何も言っていないように思えます。

例としてフラクタルをあげました。そして、その最低限をどう判断するかは(あなたの場合)軍事機密です...あるいは、私が尋ねていることを理解していないのでしょう。

 
ANDREY:

下げさせて、メインは30pipsで注文が開くことです。そして開封後は、新安値を探すために価格を下げさせます。現在のBidがLow[ 50]から30ポイント離れていて、注文を出すことができるとします。 if ( Bid - Low[ 50] > 30 points) - open order. しかし、それが50本目のローソクの安値かどうかは、どのように確認しますか?ですから、この場合は、ローカルミニマムの前ではなく、その後を 確認する必要があります。

棒を数える必要はない

注文が開始された後、変数に値Low[0](現在のバーの最小値)を割り当て、バーが閉じられた後、Low[1]の値が変数より小さい場合、新しい値を割り当てます。

でない場合は,古い値,すなわち最小値が保持される。