EA作成プログラム:ドテン売買 | FXクスクスのEA作成・EA検証

FXクスクスのEA作成・EA検証

FX自動売買に興味をもち、EA作成を目標にし、
FX・EA情報収集やEA検証しながら、EA作成をしています。
興味を持ったEAは暇があればどんどん検証していきたいと思います。

■運用中EA・システム

無料: CamusinForexRobot      HP掲載結果(FXDD)

無料: CamurideForexRobot    → HP掲載結果(FXDD)

無料: 風林火山           → HP掲載結果(FXDD)

無料: FXRaptor            HP掲載結果(4XP)

有料: CrossFireFX (無料版も有り) HP掲載結果(4XP)

有料: PF9.02FX            EA成績ランキング

有料: PEGASUS            EA成績ランキング  

有料: Traders Battle         プロのトレードをコピー


■おすすめEA・システム

無料: CamusinForexRobot     → HP掲載結果(FXDD)

無料: CamurideForexRobot    → HP掲載結果(FXDD)

無料: FXRaptor            HP掲載結果(4XP)

有料: PF9.02FX            EA成績ランキング  

有料: CrossFireFX (無料版も有り) HP掲載結果(4XP)

有料: Traders Battle         プロのトレードをコピー


■重要記事

  バックテスト    レシオ計算    EA成績ランキング



こんばんわ。 FXクスクスです。



今日も前回のサイトを参考に

プログラムの作成をしました。


内容は、前回のプログラムに

ドテン売買を行うようにプログラムを追加しました。


前回と内容はほとんど同じですが、

仕掛けに売りが追加されて、

手仕舞い後の処理が少し変わっています。


------------------------------------


int init()
{


return(0);
}


int deinit()
{

return(0);
}


int start()
{
//変数の宣言
int cnt, CurrentPosition;
int Ticket;
double kakoa,gennzaia;
double kakob,gennzaib;

//オーダーチェック(ポジションなどのデータ)
CurrentPosition= -1;
for(cnt=0;cnt < OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS);
if(OrderSymbol()== Symbol()) CurrentPosition=cnt;
}

//一時間前の21日線
kakoa=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,1);
//一時間前の90日線
kakob=iMA(NULL,0,90,0,MODE_SMA,PRICE_CLOSE,1);

//現在の21日線
gennzaia=iMA(NULL,0,21,0,MODE_SMA,PRICE_CLOSE,0);
//現在の90日線
gennzaib=iMA(NULL,0,90,0,MODE_SMA,PRICE_CLOSE,0);


//ポジションチェック ポジション無し
if(CurrentPosition==-1)
{
//もし21日線が90日線を下から上にクロスしたら
if(kakoa < kakob && gennzaia >= gennzaib)
{
//買いポジションを取る
Ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"BUY",0,0,Red);
}

//もし21日線が90日線を上から下にクロスしたら
if(kakoa > kakob && gennzaia <= gennzaib)
{
//売りポジションを取る
Ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"Sell",0,0,Blue);
}



}

//ポジション有り
else
{
//ポジションの選択
OrderSelect(Ticket,SELECT_BY_POS);

//ポジションの確認
if(OrderSymbol() == Symbol())
{
//もし買いポジションだったら
if(OrderType()==OP_BUY)
{
//もし21日線が90日線を上から下にクロスしたら
if(kakoa > kakob && gennzaia <= gennzaib)
{
//手仕舞い
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);

//ドテンで売りポジションを取る
Ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"Sell",0,0,Blue);
}

}

//もし売りポジションだったら
else if(OrderType()==OP_SELL)
{
//もし21日線が90日線を下から上にクロスしたら
if(kakoa < kakob && gennzaia >= gennzaib)
{
//手仕舞い
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);

//ドテンで買いポジションを取る
Ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"Buy",0,0,Red);

}

}

}

}


return(0);
}


------------------------------------


//ドテンで売りポジションを取る
手仕舞いが買いなので売りポジションを持ちます。


//もし売りポジションだったら

elseは先に使ったif以外という意味です。

if(OrderType() == OP_SELL)
の部分はポジションが売りポジションかを調べます。


//ドテンで買いポジションを取る
手仕舞いが売りなので買いポジションを持ちます。




あとはコンパイルして完成です。


下記はバックテスト結果です。



FXクスクスのEA作成


FXクスクスのEA作成


今後もEA作成に向けてがんばっていきたいと思います。




◆ご不明点などお気軽にご相談ください↓◆


ご連絡はこちらから


■最後までご覧くださり有難う御座います、ついでにワンクリックしてくださると助かります^^

にほんブログ村 為替ブログ FXツール徹底検証へ