*

某インジのシグナルをEA化して改造してみる(2)

公開日: : FX


各関数を具体的に見ながら検討してみる。前回を読まないと意味不明だと思うのでよろしく。


まずはinit()部分。

int init() {
if(Digits==3 || Digits==5)    POINT=Point*10;
else   POINT=Point;
return(0);
}

ここでFX会社による小数点以下の違いを吸収できるようにしておく。当初想定しているGBPUSDだけでなく、クロス円などにも対応するかもしれないのでオマジナイ。これで正確にうごいてくれるのかどうかは不明だったりする。ごめんね。
続いてdeinit()部分。ココには特に書くことがないのでそのまま。
次はClosePositions()関数。読んで字のごとくポジションを終了させる関数。実は今のところ使う予定が無いのだが、今後のために書いておくことにする。当然、MAGICも見ながら、このEAで持っているポジションだけを閉じる処理となる。現状では持っているポジション数に関係なくすべて閉じる予定の関数。

CountPositionsでポジションを数える

CountPositions()はポジションの数を数える。これは上の関数の中身とほとんど同じで、counterという変数を+していって、そのままreturnする内容。複数のポジションを持つEAにするか、常に1ポジションのみのものとするか?もしくはポジションがある場合にストップラインを調整するかどうかなどの判定に使用する。

OrderBuyPositionとOrderSellPosition

この関数が呼ばれると、最初に設定されたLOTをオーダーする。現状ではロット数の調整は行わないので、関数の中で固定とする。

int OrderBuyPosition()
{
int ticket;
int err;
double sl = STOPLOSS * POINT;
RefreshRates();
ticket = OrderSend(Symbol(),OP_BUY, LOT, Ask, 10, 0, 0, COMMENT, MAGIC, 0, Blue);
if( ticket < 0 ){
err=GetLastError();
Alert("EA(BUY):", EaName, " error(",err,"): ",ErrorDescription(err));
}
else
{
OrderSelect(ticket,SELECT_BY_TICKET);
ticket = OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - sl, 0, White);
}
return(ticket);
}

ストップはSTOPLOSSで設定した整数にPOINTをかけて設定。買う場合は購入額からマイナスした金額。得る場合は足した金額になる。最初にストップや利確(TakeProfit)を0でオーダーして、無事に購入できたら改めてストップを入れるというパターン。

とりあえずのTrailingStopLoss

単純なトレーリングストップより良い方法があるけど、ちょっと面倒なので当初はシンプルなヤツで。初期設定できるようにしたほうが良さそうなので

extern int TRAILING=50;

とか入れておくことにする。書いてみたのか次のコード。間違ってるかもしれないから、気がついたら教えて下さい。

void TrailingStopLoss()
{
double sl=TRAILING*POINT;
for(int i=0; iAsk+sl)
OrderModify(OrderTicket(),OrderOpenPrice(), Ask + sl, OrderTakeProfit(), White);
}
}
}

現在のストップ値をチェックしてストップラインが上下しないようにしておくことにする。特に難しいところもないようなので次へ。
平均足のフィルタは後ほど検討することにする。
あとはOrderSignal関数だが、現状では非公開ですいません。そしてチャートの足が新しくできたかどうかの判定関数。これはネットで探してきたパクリなので説明は省略。パクってすいません。
とりあえず、次回はこれらを組み立ててみる


Sponsored Link


 
 

関連記事

no image

CakePHPガイドブック

しばらく更新していない間に「CakePHPガイドブック」という本が出ている。 早速購入して読んでみる

記事を読む

5.5万円のアイスクリーム型ブラシレスジンバル Beholder登場

GWもそろそろ終わり。やっと道路が普通に戻ってくれます。この時期、県外からや色々と、運転が危ない人が

記事を読む

超激安 Nebula 4000 Lite が1万円以下!SimpleBGC GUI 2.50b0 (リリース候補)

速報です!超激安 Nebula 4000 Lite が1万円以下!!! たぶんスグに修正されちゃうと

記事を読む

Final Cut Pro X の複合クリップを覚えた(RPG風)

いよいよ来週からは12月がスタートします。忘年会やらなにやらと忙しい時間が過ぎて年末に突入!あっけな

記事を読む

no image

CakePHP向けのケータイライブラリ「Ktai Library for CakePHP1.2」が公開

CakePHP向けのケータイライブラリ「Ktai Library for CakePHP1.2」が公

記事を読む

ご質問は掲示板へお願いいたします。

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKにジンバルを入れる

やっぱり高いけどEndurance (エンデュランス) カメラバッグの

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKが北の国から

一年中GWの美少女です。 Lowepro カメラリュック フリッ

MOZA Mini-S スマホ用スタビライザーが届いた!

1万円弱で買えるスマホ用ブラシレスジンバルの新型 MOZA Mini-

GoPro Hero7 Black用 保護ケース アルミ合金保護フレームがいいよって話

別に大した話ではありません。 最近書くことが少ないのでたまには書

期待の新製品 MOZA Mini-S スマホ用スタビライザーが発売されたみたい

教えてもらった新製品のホームページで MOZA Mini-Sが紹介され

→もっと見る




  •  

PAGE TOP ↑