ea n7s_ao_772012 - ページ 23

 

さて、FLG 関数 に含まれないフラグについて少し説明すると、 自身は独立しています。

A)Flg - 初期化フラグ、入力信号(この信号は長持ちする)がある場合、失敗または動作開始後にポーズを開くことを避けるために必要である。論理的には、VSR!=0、すなわち信号があれば、Flg=falseに設定する。 信号が消えれば、すぐにフラグをリセットする。

if (!Flg){if (VSR () ==0) {Flg=true; return (0);}}。

B)Flq - 興味深いフラグで、同じバーで2つ目のポジションを開くことを禁止しています。当初は1バーでの損切りを 禁止したかったのですが、簡単にできるBuSll関数が完成したら実装しようと思っています。今のところ、そのようなバリエーションがあります。

位置開きに設定されています。

{if (Trd_Up_X && VSR() > 0 && bu <HM_Up_X ) { .

if (MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}。

if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y ) {

if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}。

ちなみに、この機能での修正については、先ほど書きました。

4時間ごとにリセットされます。もし、これが一部のペアにとって多すぎると思うのであれば、関数に追加することができます H1() 一部のペアを除いて、1時間ごとにフラグをリセット if (Symbol()!="GBPJPY" || Symbol()!="USDCHF"){ Flq = true ; }.

 
WitoHOH писал(а)>>

なんか最新版だとうまくいかない。

オプティマイザーは、最初の段階では一度も取引を開始しないのです。

前のEAに最適化されたパラメータを持つテスターも同じように動作します。

最適化されていない原因を突き止めたか?

 
SHOOTER777 писал(а)>>

最適化されなかった原因は解明されましたか?

いいえ。

あまり時間がなかったんです。

前回は歴史が浅いということで問題がありました。

履歴を復旧させたところです。

明日の朝、お知らせします。

 
SHOOTER777 писал(а)>>

最適化されなかった理由はわかりましたか?

最適化する気がないのです。

第7弾は、同じヒストリカルデータで最適化されています。

最新作はそうならない。

結果はすべて「0」。

 

専門家を再掲載しました。おそらく破損しているのでしょう。フォーラムがフリーズした。

そして、Expert Advisorの以下の行に注目してください。

Expert Advisorが取引されているときの初期残高、最小値、最大値。

//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;
//------------------------------------------------------------------//

禁止事項は関数 bool FLG (int cs ) に実装されています。

ファイル:
 

参議院の論理をもう少し詳しく。

問題があるのは、頻繁に起こるギャップです。ギャップが発生すると、指標値と価格が乖離するため、最適化されたパラメータとマーケットエントリーの条件が同期されなくなります。回復には時間がかかる。AOでは12時間と定義し、20スタンダードポイント以上の価格変化を重要なギャップとみなしています(ペアによっては他の値もあり得ますし、そうあるべきです)。

こうして、私たちが行ってきたこと。

まず最初に、ギャップがあるかどうかを判断しました

文字列 dttm =StringConcatenate(Year(),".",Month(),".",Day()));
datetime smtm=StrToTime(dttm);
bool Gp;
int shft = iBarShift(NULL,0,smtm);
double iOpn = iOpen (NULL,0,shft); double iCls = iClose (NULL,0,shft+1);
double dOC = MathAbs ((iOpn - iCls)/(Point*10));
if (dOC>20) Gp = true ;

だった場合で、Gp=trueであれば、禁止される条件は

((曜日( ) == 1 && 時刻( ) < 14) && Gp))

という疑問はありますが、機能

iBarShift (NULL,0,smtm)です。

という書き方がよいかもしれません。

iBarShift (NULL,60,smtm,true); でもダメ、最後のデフォルトパラメータはfalseのまま?

皆さんのご意見、ご感想をお待ちしています。

 
SHOOTER777 >> :

また、EAの以下の行にも注目してください。

初期残高、最小値、最大値、EAが取引しているとき。

//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;
//------------------------------------------------------------------//

この禁止事項は,関数 bool FLG (int cs ) に実装されています。

なぜ、そのような制限が必要なのでしょうか?

 
capellini писал(а)>>

なぜ、そのような制限が必要なのでしょうか?

必要なければ使わなくていい!リアルで多通貨対応のEAとして準備中です。将来的には、EAは、不可抗力の状況ですべてを失うことがないように、下から取引することができないように、上から取引するフォークになります - 手の中の鳥はクレーンよりも優れている)))ただしMM

 

そして今、現場から、あるいは前線からのニュースです))

先週末は、L9版用のセットファイルを用意する時間がなく、作業が終わったのが遅く、しかも連休中でした))))

そこで、実験を行うことにした。L9のバージョンに、先週と別のバージョンのセットを入れてみました。

2日後の状況:残高 -$70 純資産 +$420 いい動きです!

 
SHOOTER777 писал(а)>>

そのため、テストや最適化を行う場合は、Equityがパラメータで設定した範囲内であることを確認します。

bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;

or add to int init() line if (IsOptimization( ) )TrBlnc = false;//if ( IsTesting() ) TrBlnc = false;

うまくいった。

最適化が進んでいる

おそらく、そのような変数はコードの外に移動させるべきでしょう。

最適化の際も、実際の仕事でも、もっと楽になるはずです。

Expert Advisor は、残高を変更するたびに再コンパイルする必要はありません。