[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 270

 
1Rakso >> :

なぜ信号が出ないのか?

最高値と最安値からpips単位でフィルターゾーンを設定したかったのですが・・・。信号が出ないのですが、どうすればいいのでしょうか?

何をお探しなのかよくわからないのですが......。

double hi_100 = iHigh(Symbol(),tf_100,iHighest(NULL,tf_100,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения
double lo_100 = iLow (Symbol(),tf_100,iLowest (NULL,tf_100,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения

N本のバーの高値と安値がある場合、次のように探します。

double hi_100 = High[iHighest(Symbol(), tf_100, MODE_HIGH, hibar, 1)];
double lo_100 = Low [iLowest (Symbol(), tf_100, MODE_LOW, lobar, 1)];

ここで、hibar と lobar は高値と安値が探索されたバーの数である。

tf_100 - 最大値と最小値が検索される時間枠.

1 - 1小節から検索を開始します。0小節から検索したい場合は、0を設定してください。

 
Swan >> :


ああああ、恥ずかしい、恥ずかしい。
 
Dimi >> :

さて、ここで問題です。この配列の値20を変数に入れるにはどうしたらいいでしょうか?

binddouble Max_array[20];関数の外側(グローバル)で、必要であれば、static も

 
alsu >> :

まず、コードを論理的な順序で並べます。

ArraySetAsSeries(Max_array,true) - なぜ?

for(c=1; c <= total_c; c++) - 配列は0からtotal_c-1までのインデックスを持つ

正直、なぜその理屈が気に入らないのか理解できませんが...。ここでArraySetAsSeries(Max_array,true) 配列のインデックス方向を設定 する。それとも何か問題があるのでしょうか?

 
Dimi >> :

正直なところ、なぜそのロジックが気に入らないのか理解できない。ArraySetAsSeries(Max_array,true) ここで、配列のインデックス方向を設定 します。それとも何か問題があるのでしょうか?


これはもちろんエラーではなく、論理的に不要な文字列であるに過ぎません。ArraySetAsSeries は、配列のサイズがさらに大きくなったとき(たとえば、新しいバーごとに)、新しい要素のインデックスが 0 になることに意味があります。しかし、静的な場合、メモリ上にどのような順序で要素を並べても違いはない。2つ目の注意点ですが、サイズNの配列の場合、最後の項目はインデックスN-1を持ちます。正しいコードfor(c=0; c < total_c; c++)

 
alsu >> :

これはもちろんエラーではなく、論理的に不要な文字列であるに過ぎません。ArraySetAsSeries は、配列のサイズがさらに大きくなったとき(たとえば、新しいバーごとに)、新しい要素のインデックスが 0 になることに意味があります。しかし、静的な場合、メモリ上にどのような順序で要素を並べても違いはない。2つ目の注意点ですが、サイズNの配列の場合、最後の項目はインデックスN-1を持ちます。正しいコードfor(c=0; c < total_c; c++)

ありがとうございます。 これでエラーの原因がわかりました。しかし、double Max_array[20];ではまだダメです...。少し変わった説明をさせてください。過去20本におけるRSIの最大値を検索する機能です。私は、別の関数によって計算されるそのバーの数の最大値を検索するようにしたい。つまり、新しいバーが出るたびに、この計算されたバーの数は変化します。10にもなるし、20にも30にもなる...。コードにどのように実装するか?バー計算関数ができたので、今度はこの配列に20という数字の代わりに挿入する方法 double Max_array[20]; ?・・・・・・?

 
Dimi >> :

ありがとうございました。これでエラーの原因がわかりました。しかし、このdouble Max_array[20];は、まだ私には理解できない...。少し違う形で説明します。過去20本におけるRSIの最大値を検索する機能です。私は、別の関数によって計算されるそのバーの数の最大値を検索するようにしたい。つまり、新しいバーが出るたびに、この計算されたバーの数は変化します。10にもなるし、20にも30にもなる...。コードにどのように実装するか?棒グラフを計算する関数ができたので、この配列に20という数字の代わりに挿入する方法 double Max_array[20]; ?・・・・・・?


非常にシンプルです。

double IsMaxRSI(int total_c) {
   ...
   double Max_array[];  
   ArrayResize( Max_array, total_c);
   ...
}
виноват, код куда-то выпал
 
Dimi >> :

何をお探しなのかよくわからないのですが......。

double hi_100 = iHigh(Symbol(),tf_100,iHighest(NULL,tf_100,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения
double lo_100 = iLow (Symbol(),tf_100,iLowest (NULL,tf_100,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения

N 本の棒に対して最大と最小がある場合、次のように検索されます。

double hi_100 = High[iHighest(Symbol(), tf_100, MODE_HIGH, hibar, 1)];
double lo_100 = Low [iLowest (Symbol(), tf_100, MODE_LOW, lobar, 1)];

ここで、hibar と lobar は、高値と安値が探索されるバーの数である。

tf_100 - 最大値と最小値が検索される時間枠.

1 - 検索は1本の棒から始まり、0本の棒で検索したい場合は0を入れる必要があります。

バーについては、私は50から100バーのレベルを探していた、それが最適化のためにそれらを外部に入れている理由です。

グローバル変数にfの配列を入れず、外部変数にfの値をtfの順番で入れていたのが原因でした)))

extern int tf_100  =   3; //)))

int tf[10]={0,1,5,15,30,60,240,1440,10080,43200};//массив таймфрейма забыл его вставить)))

double hi_100 = High[iHighest(Symbol(), tf[ tf_100], MODE_HIGH, hibar, 1)];
double lo_100 = Low [iLowest (Symbol(), tf[ tf_100], MODE_LOW, lobar, 1)];

みたいな基本的なこと、本当に馬鹿だなあ......。

 
alsu >> :

非常にシンプルに

本当にありがとうございました!!!効いているようだ!!!

まさに時計のように、いつもありがとうございます!!!!本当に簡単でした。
 

友人たちよ、こんにちは。


もしよろしければ、そのような難題を解決する方法を教えてください。


私は初めてEAを1つ書いているのですが、このような難題に遭遇しました。


1) 同じ通貨で、異なるTFで行われた注文を「区別」することは可能でしょうか?

(例えば、同じ通貨ペアでH4とM30でEAを取引しているのですが...。H4でトレードを行い、インジケータはこのTFに動きを示していますが、このトレードはM30のクローズシグナルによりクローズされています。)

つまり、これらの取引をH4とM30でプログラム的に区別することは可能でしょうか?


2)Expert Advisorを書きながら、私は明白な考えを持ちました :)"ポジションを閉じるシグナル、反転して反対のポジションを開くシグナル "は、必ずしも良いとは言えない...。

逆のシグナルが発生する前に、多くの利益を失ってしまうこともしばしば...。

そこで、トレーリングストップを使い、フィボナッチを使ってターゲットを形成することにしました。


トレードの注文を出す際に、あるフィボナッチレベルの基準点としてターゲットを(EAで)設定する方法を教えてください。


3) BrainTrend1StopNというインジケータがあります。このインジケータが生成する「ポイント」のレベルまでストップを「引く」方法をご教示ください。


ありがとうございました。
ファイル: