//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start(){
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array);
Alert("Max value = ", num_array[maxValueIdx]);
return(0);
}
//+------------------------------------------------------------------+
to Reshetov^ こんな感じ: int start() { Comment("Open positions: ", OrdersTotal()); string smb=Symbol(); int tf=Period(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+".OrdersTotal(); gsID=smb=Symbol()+IsTesting()+IsOptimization()+"."+Magic; inf=""; INF(TTS(TimeCurrent()), true); main(Magic, smb, tf); Comment(inf); と、どこでどのように数字が表示されるのでしょうか。
EAでArrayMaximumを使用する方法を教えてください。 インジケータでは動作し、配列とバッファをマークしましたが、EAでは明確ではありません。
まず、アレイを用意する必要があります。MetaEditorのヘルプに記載されている スクリプトを試してみてください。
まず、アレイを用意する必要があります。メタエディタのヘルプに記載されている スクリプトを試してみてください。
私のインジケータではこのようになります。
sm[i]=..................................;
double IndexMaxValue=ArrayMaximum(sm,n,shift)とする。
スクリプトに添付する方法がわからないのですが、Expert Advisorでどうすればいいのでしょうか?
iCustom経由でsm[i]を出力することはできますが、iCustomの変数をArrayMaximumに入れるにはどうしたらいいでしょうか。
しかし、iCustom変数は配列ではないので、どうやってArrayMaximumに入れるのでしょうか?
無駄にドキュメントを引用したわけではありません。関数への入力として与えるべきパラメータの記述というものがある。そこに「パラメータは配列名でなければならない」と書いてあれば、他の関数(特にiCustom())を押し込んでも何もいいことはありません。つまり、ArrayMaximum()を呼ぶ前に配列を宣言し、その配列に値を入れてからでないと、ArrayMaximum() は呼べないということです。
インジケーターのコードそのものをEAに入れてみましたが、何も動きません。IMHOのポイントは、インジケーターにはバッファを示す必要があり、EAではどこにも見当たりません。だからインジケーターは動くのに、同じコードがEAで動かないのです。周期sm[i]で満たされた配列があり、インジケータはそれを見ていますが、同じコードを持つEAは見ていません。もしかしたら、EAの配列はインジケータとは異なる方法で宣言されるべきなのかもしれません。
Work it out - no questions asked:https://www.mql5.com/ru/articles/mt4
https://www.mql5.com/ru/articles/1497
この投稿を編集しました - 今は別のリンクがあります - もう一度クリックしてください - そこには非常に良いコースがあります - スクリプトを作成することから始めると良いでしょう。