*

某インジのシグナルを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


 
 

関連記事

気になる情報・新製品発見メモ

日頃ネットをウロウロしていて記事にするほどでもない情報、記事にするほど内容がわからないものなどをメモ

記事を読む

ちょっとRODE invisiLav ラベリアマウントシステムを試してみた

ここ数日、とても寒くなりました。オマケに12月ということでいつもより雑用が多くて、なかなかじっくりと

記事を読む

Nexus 5のカメラを適当にテストしてみる(動画と静止画の取り込み)

Google Nexus 5 のカメラをテストしてみようと思ったら、どうやらAndroidのバージョ

記事を読む

WordPressの最強無料セット BizVektorテーマでWelcartを搭載してみる2

前回で色合いは一応統一できた。しかしよく見ると左右が揃っていない。 そこでCSSを修正。下記のファ

記事を読む

Macのchrome で英語フォントの表示がおかしい

予想通り1月は円高。ジワジワ進んでいます。もうちょっと待って月末には色々発注しようと我慢しながら見て

記事を読む

最初に某氏のSimpleBGC GUI設定を一括公開

さすがに新年で色々忙しくなっています。ブログの更新も予定通りに進みません。折角送っていただいた設定も

記事を読む

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

Message

メールアドレスが公開されることはありません。

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

気になる情報・新製品発見メモ

日頃ネットをウロウロしていて記事にするほどでもない情報、記事にするほど

録音(撮影)ミニスタジオの制作DIY

そんな訳で吸音スポンジを壁に取り付けてみた続きです。 調子に乗っ

YAMAHA MG10UXミキサー到着

2018年 物置(事務所or作業場or遊び部屋)の一角を音声収録&撮影

そしてzbrush coreをインストールしてみる話

Blenderに挫折してから一気に3Dにのめり込んでいます。 ま

録音環境を改善する!吸音パネルをDIYとか

久々に更新! すっかり更新グセが抜けてしまい、イマイチやる気が出

CeVIO Creative StudioがMacのWin10で認証失敗

久しぶりに更新できました。 この時期は寒くて...と言い訳から入

→もっと見る




  •  

PAGE TOP ↑