メタトレーダー◎
初歩的な質問ですみませんが、どなたか教えてください。メタトレーダーのEAプログラムについてです。
(1) エントリー時に移動平均線の傾きの角度を制限したいので下記のようにしました。
extern double MA_Period = 20; // MAの足数
extern double kaikatamuki = 40; //買いのMA逆傾き制限(%)必ず99以下で
extern double urikatamuki = 40; //売りのMA逆傾き制限(%)必ず99以下で
~ ここに色々式がありまして・・・・ ~
//MA傾きの計算
ma1 = iMA(NULL, 0, MA_Period,0, MODE_SMA, PRICE_CLOSE, j);
ma2 = iMA(NULL, 0, MA_Period,0, MODE_SMA, PRICE_CLOSE, j+1);
katamuki1 = ma1/ma2*100;
katamuki2 = ma2/ma1*100;
//katamuki1 = ma1-ma2;←これは差を求めるために作っただけ
//katamuki2 = ma2-ma1; ←これは差を求めるために作っただけ
//オープンポジションの計算
int pos = CalculateCurrentOrders();
//売りシグナル
if (pos>=0 && k==llb && katamuki1
ClosePositions();
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+TrailingStop1*Point,Bid-TakeProfit*Point,””,MAGIC,0,Red);
return(0);
}
//買いシグナル
if (pos<=0 && k==hhb && katamuki2
ClosePositions();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-TrailingStop1*Point,Ask+TakeProfit*Point,””,MAGIC,0,Blue);
return(0);
}
しかし、compileはできたのですが、実際のバックテストでは約定しません。kaikatamukiとurikatamukiを100以上にすれば約定するのですが、理屈が反対になるのでダメです。また、大きい傾き時のみのエントリーを計画しているのですが、傾きが緩やかな時も約定してしまいます。何が間違っているのでしょうか?または、傾きの有る無いしか作れないのでしょうか?
(2)上記にあるOrderSendのStopLossの所にTrailingStopを最初から適用すると約定しません。StopLossを入れると約定します。上記ではTrailingStop1となっていますが、1をつけなくてもダメでした。私としてはOrderSendで TrailingStop を入れて、ある一定の利益が出たらOrderModifyで新たな TrailingStopを設定したいと思っていました。これはダメなんでしょうか?
(3)上記とは違いますが例えば、Supersignalの矢印が出てから何本目の足以内にMACDCrossが出たらエントリーというような、「これが成立してから足何本以内にこれが成立したら」が書けません。forexでstatic int barsAtStart;を見つけましたが、これまた動きません。
長々と申し訳ありません。よろしくお願いいたします。
(この記事は「教えてgoo!」より引用させて頂きました。)
今日のお勧めEA
販売者のサーバーから相場に合わせたパラメーターを受信し、常に最適化された値で取引が出来る24時間スキャルピングシステムです。販売元はFOREX COMBO SYSTEMと同一の業者なので安心して購入出来るEAです。
MT4、EAを使ったFX自動売買の始め方
外国為替証拠金取引(以下FX)の自動売買を始めるにあたり、当サイトでは世界的に有名なソフト「メタトレーダー4(以下MT4)」の「エキスパートアドバイザー(以下EA)」という機能を使って取引をすることをオススメしています。MT4はロシアのMetaQuotesという会社によって開発された「世界最強の金融トレーディングソフト」と呼ばれているWindows向けのソフトウェアです。このソフトに内蔵されているEAという機能を使えば、ソフトを起動している間ずっと相場を監視して一定のルールに従ってFXの自動売買を繰り返してくれます。
