ファイヤーバードEA - ページ 58

 
 

rbchapinさん、こんにちは。

たぶん、あなたの言うとおりでしょう。しかし、「クレイジー・デイ」は金曜日だけではありません。他の日かもしれません。

セットファイルの設定の中を見たところ、以下のような設定が書かれていました。

extern int MAtype=0;//0=close, 1=HL

extern int TradeOnFriday =0; // >0 trades on friday[/CODE]

But inside the code I found the following:

if(MAtype==0)

{

double myMA =iMA(NULL,MA_timeframe,MA_length,0,MODE_SMA,PRICE_OPEN,0);[/CODE]

So, according to my limited programming knowledge, if MAtype=0 so EA is using MA indicator on open price for current open bar.

And some other codes:

[CODE]KeepStopLoss=OrderStopLoss();

And more:

[CODE]if(KeepStopLoss!=0)

{

spread=MathAbs(KeepAverage-KeepStopLoss)/2;

dummy=(Bid+Ask)/2;

if (KeepStopLoss(dummy-spread))

{

// a stoploss was hit

if(Direction==1) Direction=11;// no more longs

if(Direction==2) Direction=22;// no more shorts

}

KeepStopLoss=0;

}

Direction==1 is long; Direction==11 is no longer long.

Direction==2はshort、Direction==22はもうshortではありません。

 

そして、このコードを見てください。

if((myMA*(1+Percent/100))<Bid && Direction!=22 && (Bid>=(LastPrice+(CurrentPipStep*Point)) || myTotal==0) )[/CODE]

So, it is not surprise when EA is openning too many orders sometimes. It is open price and when market is moving very quickly so we may have condition for open the order 100 times on open bar.

May be it should be && instead of or (||) here?

[CODE]....|| myTotal==0) )
 

したがって、少なくともEAが飛ぶ日がわかるというのは非常に良いことです:毎月5日かもしれません。

 

しかし、あなたの言うとおりかもしれません。

なぜなら、このコードを「翻訳」することができるからです

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.
 

ヘッジについて

皆さん、こんにちは。

Firebird v3.2について質問です。

Firebird v3.2の動作を見ていて、間違った方向に行った場合、取ったポジションに対してヘッジすることがわかりました。 しかし、ヘッジが利益で終了すると、他のトレードがテーブルの上に残されます。

一つのポジションがクローズしたら、すべてのポジションをクローズすべきではないでしょうか?

もし、価格が非常に長い間、オープンポジションに戻らなかったらどうするのでしょうか?

rbc

 
newdigital:
でも、おっしゃるとおりかもしれませんね。

なぜなら、このコードを「翻訳」することができるからです

if (Day()!=5 || TradeOnFriday >0)[/CODE]

as the following:

"if it is not 5th of the month, or if we are trading on Friday."

And int Day( ) is the following:

Returns the current day of the month, i.e., the day of month of the last known server time.

So, EA will trade is it is not 5th of the month (5th of October for example) or TradeOnFriday>0 (we are having TradeOnFriday=0).

I think it should be DayOfWeek( ) instead of Day( ):

[CODE]int DayOfWeek( )

Returns the current zero-based day of the week (0-Sunday,1,2,3,4,5,6) of the last known server time.

こんにちは、newdigitalです。

EAは取引を続けていますが、LastPriceとMyordersが凍結されているため、実際にはもう少し悪いです。 これらを凍結した場合、以下のような結果になります。 1.1.注文 数に制限がない 2.価格がストライクレンジにドリフトした場合、Lastpriceが最後の注文に従わないため、そこで打ち続けることになります。

確認したところ、Lastpriceは取引中に更新されないので、if文の下のループに入らないと更新されないようです。

If (Day())ステートメントを削除して、金曜ブロック全体のロジックを時間フィルタロジックが配置されているところに配置するべきだと思います。(あるのかどうかわかりませんが、V3.2にはあります)。 もし、利益が出ないようであれば、マネーマネジメントが常に働くことになるので、リスクを上げてもいいと思います。

rbc

 

rbchapinさん、こんにちは。

どうもありがとうございます。

私は昨年、このEAをテストするのを止めようと思ったのですが、多くのPMメッセージを受け取り、多くの人がその「クレイジーな日々」が好きなようです。私は、メンバーが、1分間で100の注文を出すことは、実際の口座では不可能であることを理解していないと思います。

私はこのEAのテストを続け、ファイルのスレッドhttps://www.mql5.com/en/forum/176044/page2 を「バグ発見メッセージ」と共に更新する予定です。

 

昨日もファイヤーバードは飛んでいました。

ファイル:
firebird065.zip  546 kb