ゴゲッターEA - ページ 3

 

このEAをフォワードテストしたことがありますか?

 

ねえ

急いで作業するものを与えるために、私は明白な何かを見逃していました。次のようなコードの行を修正してください。

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber))

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)のようになります。

すみません、見落としがありました。同じEA、同じMagicnumberで複数通貨を取引するようになると、混乱するんですね。

とにかく、あなたがうまくいっていることがうれしいです。お疲れ様でした、そしてあなたは全ての賞賛に値します。

 
Maji:
ちょっと。

急いで作業するものを与えるために、私は明白な何かを見逃していました。次のようなコードの行を修正してください。

if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber))

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)のようになります。

すみません、見落としがありました。同じEA、同じMagicnumberで複数通貨を取引するようになると、混乱するんですね。

とにかく、あなたが元気でいてくれることがうれしいです。よくやった、あなたはすべての称賛に値します。

ということで、気になったのですが、そのままにしておきました...終わりよければすべてよし...修正完了です。

 

GGlongsビルド1.05

これで良しとします。

複数注文のカウント方法の強化、複数注文の処理・修正等の問題点を指導してくれたMajiに改めて感謝します。

これは、新しいトレーリングストップ機能と新しいカウント機能を 全体に使用しています。

また、下に添付したグラフのサムネイルを作成したシグナル_2についても作業を行いました。これはメイントレンドシグナルです。カウンタートレンドのシグナル_1はまだ試していません。しかし、GBP/USD 5mチャートへの再展開のために、この設定でsignal_2は許容範囲です。

フォワードテストでは、前バージョンのGGlongsは今朝明確な買いシグナルを入力することができませんでした。v1.01のシグナルロジックを見直すと、自分が思っていた以上に、全てが混ざっていたことが分かりました。とにかく問題は解決しました。v1.01の時よりもv1.05の方がフォワードテストがうまくいくはずです。v1.05はv1.01よりもフォワードテストがしやすくなっているはずだ。

ファイル:
 

変更前のチャートでは、全く修正されていないことに気づきました...以前のように、最後のシリーズの跡に新しいシリーズが入るわけでもありません...なぜでしょう?私が行った変更でどうしてそうなるのだろう?

信号のロジックを間違えたからだとわかりました...謎は解けました。

ファイル:
 

困ったなあ......。

これは、GGlでうまく機能しているものです....

int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop || OrderOpenPrice() - Bid >= 0) {

if(OrderStopLoss() < Bid - Point * TrailingStop || OrderStopLoss() == 0) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); //etc.

}//for

}

}

}

} [/PHP]

so....

why doesn't this work in the GGs???

[PHP]int ModifyTrades()

{

int trade;

for(trade=OrdersTotal()-1;trade>=0;trade--)

{

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol()&&OrderMagicNumber()!=MagicNumber)

continue;

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)

if(TrailingStopMode && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop || Ask - OrderOpenPrice() >= 0)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); //etc.

}//for

}

}

}

}

...そういえば、どのGGsバージョンのレポートでも、トレーリングストップの変更アクティビティを見たことがありません!どうしたんだろう?

ファイル:
ggs2.21.htm  149 kb
ggs2.21.gif  7 kb
 

次のコーディングの課題...

EAのロジックにサポートとレジスタンスを追加したいのですが・・・。

これは、指定したバー 数の最高値を返すというもので、うまくいきます。

//support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

GGに着目してみると。30mチャートで145本ごとに最高値があり、その後に3つの逆張りの売りシグナルがあることに気づきました。私は、カウンタートレンドの売りシグナルを、5EMAが150EMAの上にある18EMAを上から下へクロスするたびに発生するものと定義しています。つまり、新高値の後に売りシグナルが続くというパターンです。

さらに、新高値の後の最初の売りシグナルは、あまり生産的でないことがわかります。2回目のシグナルは一般的にもっと報われ、3回目などはより大きな動きが起こるところです。

それで...

それぞれの状況に合わせたシグナルを生成できるようになったので、新高値または現在の145bar期間の最高値に関連して、これらの異なる発生時に実行するシグナルをカスタマイズしたいと思います。

シグナルをカスタマイズして処理することができます...

課題は、カウンタートレンドの売りシグナルを現在の145barの期間の最高値に関連して見つけることと、このシグナルがその期間の最高値からすでに何回発生したかをカウントすることです。

シグナルの発生回数をどう数えるのかがよくわかりません。チャート上でカウントすることはできますが、コードでカウントするのはどうすればいいのでしょうか?

 

最高値が発生した移動 平均のクロスシグナルを取得した時点から、配列の何本前にあるかを判断するにはどうすればよいですか。

 

OK 配列の最大値と最小値を取得する方法はわかりました...これで値が発生したバー番号がわかりますが、チャートのバー番号で表示されます...

移動 平均のクロスが発生したバーの番号を得ることができれば、その2つを引いて、シグナルの発生から何本後ろのサポートまたはレジスタンスであるかを確認することができます。

移動平均のクロス信号が発生したときのチャートのバーナンバーはどうすればわかるの?

 
/support and resistance

double HIGH = High;

double LOW = Low[Lowest (NULL, 0, MODE_LOW, SupportBarsBack, LStartBack)];

//support and resistance location

int Hloc = ArrayMaximum(High);

int Lloc = ArrayMinimum(Low);

.

.

.

Print("Order Number: ",OrderTicket() ," ",ResistanceBarsBack," bars back resistance : ",HIGH," @bar",Hloc," & ",SupportBarsBack," bars back support : ",LOW," @bar",Lloc);

[/PHP]

this is what this code is giving me...

[PHP]2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 6 20 bars back resistance : 1.9284 @bar109 & 20 bars back support : 1.9204 @bar205

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9223

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #6 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.10 21:30 GoGetShorts-2.21x GBPUSD,M30: open #5 sell 0.05 GBPUSD at 1.9223 sl: 1.9270 tp: 1.9118 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 4 20 bars back resistance : 1.9224 @bar44 & 20 bars back support : 1.9114 @bar49

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9146

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #4 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.07 15:30 GoGetShorts-2.21x GBPUSD,M30: open #3 sell 0.05 GBPUSD at 1.9146 sl: 1.9193 tp: 1.9041 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: Order Number: 2 20 bars back resistance : 1.9186 @bar100 & 20 bars back support : 1.908 @bar15

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: SELL order opened : 1.9121

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #2 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

2006.07.19 15:27:54 2005.03.02 16:30 GoGetShorts-2.21x GBPUSD,M30: open #1 sell 0.05 GBPUSD at 1.9121 sl: 1.9168 tp: 1.9016 ok

これらのバーナンバーをどのように理解すればよいのでしょうか?

少なくともサポート・バーは、15,49,205のように連続してる。

抵抗線はどうなっているのでしょうか?100,44,109...チャートで見ると、最初の抵抗線は実際には100ではなく、20の値の配列の最初のものであることがわかります。1=100のように?

ということは、最初の2つの注文は、その注文の前の15本のサポートバーの番号に対応し、もし100が1を意味するなら、抵抗は20本のバーの配列の最初のバーで発生したのです。