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

 
evillive:

うーん、そうだな、それともこれか...。しかし、私はこのフクロウを実行し、すべてがうまくいっている、どこにも「消える」ものはなく、注文は開き、一般的にEAのように動作する )

ありがとうございました!面白いです。私のパソコンが不具合を起こしているということです
 
Dimka-novitsek:

ありがとうございました!面白いです。というわけで、私のパソコンは不具合です
再起動」を試されましたか?))
 
こんにちは、すべて!皆さん、誰もがネット上で見ていることができ、他のインダクトにオーバーレイすることができますパラボリックSAR 指標を必要としますか? または1を作成するために近づくことができる人...おつかれさまでした
 
smshev:
再起動」を試されましたか?))

- 何? すみません、よくわからないんです。
 
Dimka-novitsek:

- 何? すみません、よくわからないんです。
ソフトウェアは頻繁に再起動するのが好きなんです ))
 

午後 ))))初めてEAを書きましたが、問題があることがわかりました))))) このEAは、買い条件が非常にシンプルであるにもかかわらず、売り注文しか出さないので、それを見ていないようです。

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);} }。

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}.

どなたかコードを見ていただけるとありがたいのですが)))

ファイル:
 
追記:まあ、欲を言えばトレイリングストップやテイクプロフィットを追加してもらえると嬉しいですね。

(設定しようとした) SLまたはTPがトリガーされたとき、EAはTSで正しく動作し続けるはずです(ストキャスティックによるオープンおよびクローズ注文、オープン注文は1つだけであるべき)
どうもありがとうございました。

PS.また、ご希望であれば、トレーリングストップやゼロロスを追加することも可能です=)

ファイル:
2.mq4  10 kb
 
Lisi4ka330:

こんにちは )))初めてEAを書きましたが、問題があることがわかりました))))) このEAは、買い条件が一番簡単なのに、売り注文しか出さないので、見ていないようです。

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);} }。

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}.

どなたかコードを見ていただけるとありがたいのですが)))


ざっと見たところ、すべてOKなのですが、ロット計算ではどうなのでしょうか?まずは固定式で試してみてください。

そして、一般的にはこのように取引条件の成立を確認します。

Print(DoubleToStr(pp1,Digits));
Print(DoubleToStr(ZZ2,Digits));

if (ZZ2< pp1 )
    {OpenPosition ("", OP_BUY, Lots_New,SLB ,TPB , mn);}

if (pp1 < ZZ2)
    {OpenPosition("", OP_SELL, Lots_New, SLS,TPS , mn);}
 
Lisi4ka330:

こんにちは ))))初めてEAを書きましたが、問題があることがわかりました)))))このEAは、買い条件が非常に単純で、EAがそれを見ていないように見えるにもかかわらず、売り注文だけを出します。

if (ZZ2< pp1 ) { OpenPosition ("", OP_BUY, Lots_New,SLB,TPB, mn);} }。

if (pp1 < ZZ2) {OpenPosition("", OP_SELL, Lots_New, SLS,TPS, mn);}.

どなたかコードを見ていただけるとありがたいのですが)))


おかしいな、理屈ではpbの代わりにpaを使うからキレのあるSELLは見えないはずなんだけど。

double TPS=NormalizeDouble(pa-tp*po, Digits);// 売りのTpを計算
double SLS= NormalizeDouble(pa+sl*po, Digits);// 売りのSLを計算

 

そんな再計算アルゴリズムがあるんです。

   int ic=IndicatorCounted();
   if(Bars-ic-1>1) {ic=reinit();}
   int limit=Bars-ic-1; //BarsPrev=Bars; // кол-во пересчетов
   if(History!=0 && limit>History) limit=History-1; // кол-во пересчетов по истории

   for(int i=limit; i>=1; i--) // цикл по непосчитанным и предпоследнему барам
     {
      int n;
      int iShift=i+Shift;
      
      if (i==0)
      Input[i]=iClose(Symb, Period(), iShift);
      else
      Input[i]=(iHigh(Symb, Period(), iShift)+iLow(Symb, Period(), iShift))/2;
       }

私の理解では、最後の1本を除くすべての小節をカウントします。

i=0で最後のバーを再計算させる方法を教えてください(ループの中にすでにこのための条件があります)。