どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 562

 
Vladon:


関数は、変数に設定する必要があります。

例)bool closee=OrderClose......................................

  • OrderSelect の戻り値をチェック する必要があります。
  • OrderDelete の戻り 値をチェックする必要があります。
  • OrderSend の戻り 値をチェックする必要があります。
  • OrderCloseの戻り 値をチェックする必要があります。
  • OrderModify の戻り値をチェックする必要があります。


このような警告を避けるには、変数への復帰を明示的に指定する必要があります。
このように
  • select1=OrderSelect.........................................2
  • bool delete1=OrderDelete.............
  • bool close1=OrderClose...............
  • bool modify1=OrderModify................................
  • int send1=OrderSend..................................5


また別の問題を解決するために、ありがとうございました。
 
Forexman77:
正しい方法とは?だから聞いているんです。指標の数え方がよくわからないんです。

推して知るべしです。

こうでなくっちゃ

ここはまったくわかりません。

一般的にであれば、過去100本のバーで計算されるインジケーターで十分なのですが、

じゃあ、こうやってやってください。

 int i, limit;
  limit = (prev_calculated > 0)?rates_total-prev_calculated:100;
   for(i = limit; i >= 0; i--)
    {
 
AlexeyVik:

そして、このように作ります。


どうやって変数を取得するのか?
prev_calculated 
rates_total
 
Forexman77:
どうやって変数を取得するのか?

ああ...旧フォーマットを使っていたとは...。

rates_total は Bars です。

prev_calculatedはIndicatorCounted()です。

 
AlexeyVik:

テキストはたぶんないですが、ラベルをお願いします

docs.mql4.com/ja/constants/objectconstants/enum_object_property

OBJPROP_XSIZE, OBJPROP_YSIZE プロパティ



ラベルは予定通りではありません...。
 
AlexeyVik:

ああ...旧フォーマットを使っていたとは...。

rates_total は Bars

prev_calculatedはIndicatorCounted()です。


古いのをどうにかしたい)5でEAを何回かやったことがあるが。
 
Forexman77:
古いものを扱いたい) 5.のEAを何度かやったことがあるが、 。

しかし、古いほうで書いていると、この構造はうまくいきません。古いものには条件演算子expression1? expression2: expression3 がありません。

しかし、新しいものに書いても、新しいintOnCalculate(...)の代わりに古いint start(...)を使ってしまうと大丈夫です。

 
alxm:

ラベルがグラフィックに沿わない...。
それなら、フォントの大き さから始めなさいというのは、Vladのアドバイスの通りです。
 
AlexeyVik:

しかし、古いほうで書いていると、この構造はうまくいきません。古いものには条件演算子expression1? expression2: expression3 がありません。

しかし、新しいものに書いても、新しいint OnCalculate(...)の代わりに古いint start(...)を使ってしまうとを使えば、すべてがうまくいく。


610ビルドでやってるんだけど、古いやつなんだよね。それから、int OnCalculateで勉強します、コードが多すぎるんです。

以下のようなコードにした。

int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
      limit1 = (counted_bars > 0)?Bars-counted_bars:100;
      limit1=limit1-Period_MA_1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
 
   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit2;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1, 0, p2, 0, MODE_EMA,i);
   for(i=limit3;i>=0;i--) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer2, 0, p3, 0, MODE_EMA,i);
   for(i=limit4;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p4, 0, MODE_EMA,i);
EAにはトレードがなく、1500あたりで1つ表示されて終わりです。200でインジケータは正しくカウントされます。少ない 本数でどうにかEAに取引を開始させることができます。



 
Forexman77:

610ビルドで行うが、古いもの。それから、int OnCalculateで勉強します、コードが多すぎるんです。

以下のようなコードにした。

Expert Advisorにはトレードがなく、1500前後のどこかに1つ表示されて終わりです。200でインジケータは正しくカウントされます。少ないバー数で、なぜかEAがトレードを開始することができるのです。

じゃあ、まずEAと インジケータのどちらを書きたい のかを考えないと......。

見落としがあるかもしれませんが、私の理解では、インジケーターになると思うのですが...。