2018年9月22日土曜日

実動作検証用のTitanFX ブレード口座(TitanFX-01)の2018年度の口座履歴

コミュニティでご質問を頂いた際に、当方が実動作検証を行っている口座での取引を例に上げる場合が多いのですが、今回はその口座の2018年度分の口座履歴を公開致します。
特に確認はしておりませんが、過去のコミュニティでの回答に引用した内容や、EA毎に公開している各Myfxbookのリアルフォワードともほぼ一致すると思います。
リアルフォワードと併せてEAやブローカーを選択する際の参考になりましたら幸いです。



以下は、当方のEAの実動作検証用口座の1つである「TitanFX ブレード口座(サーバー:TitanFX-01)」でのリアルフォワード(Myfxbook)の、2018年1月~9月の口座履歴となります。
※アカウント番号・名前については編集しております事をご了承下さい

0
1
2
2

口座履歴をダウンロード

・当方のEA「たけぐまシリーズ」以降から「ギガガルーラシリーズ」まで、合計15個のEAを同時に稼働しています。

・2018年1月1日時点では残高55,407円でした。2018年9月21日の残高は2,680,460(+260,000)円となり、2018年度の現時点での利益は2,885,053円となります。

・元々海外口座は少しの資金だけを預け発注や時間計算が正しく行われるかの検証だけをして引き上げる予定だったので、特に初期は預けている資金からは推奨できない無茶なロット数で運用してしまっていますので、運用ロット数の参考にはしないで下さい。
 初動を「たけぐまシリーズ」「ココペリシリーズ」の健闘により運よく破綻せずある程度の資金に達した事と、「TitanFX ブレード口座」が日本のブローカーと比べてとても優秀だった事もあり、現在でも実動作検証を継続しております。
 2018年5月15日ぐらいからは、単一ポジションのEAは1.0ロット、複数ポジションのEAは0.5ロット~1.0ロットの運用を上限として運用しています。

・各EAの実運用公開用のサブアカウントを開設した際に「10万円 * 2口座 + 1万円 * 6口座」分資金を移動しているので、「260,000」円引き出されており、残資金はその分減っています。

こちらのページで公開している各EAの実運用公開用のサブアカウントは、
 「たけぐまシリーズ」「ココペリシリーズ」「Xenoblastシリーズ」「StablePointGetterシリーズ」が「TitanFX-01」サーバー、
 「利大損小百花繚乱シリーズ」「BravePointGetterシリーズ」「ギガガルーラシリーズ」が「TitanFX-02」サーバーとなっており、
 同じサーバーである「TitanFX-01」の取引はほぼ一致、違うサーバーである「TitanFX-02」も各配信データが違う事による影響は受けておりますが9割以上の取引が一致している事が確認できると思います。



2017年度の口座履歴には、他の方のEAの取引履歴や、自身の恥ずかしい裁量取引の数々(一番の理由)、そしてまだ開発途中だったEAが実装の根幹に関わる取引履歴を残してしまっていたりするので、その関係で公開出来ないのですが、
もし2018/01/01以降に期間を限定して公開できる方法が実はMyfxbookであったり、類似のリアルフォワード公開サービスで可能であったりする場合は、ご希望があれば公開させて頂きますので、もしご存知でしたら当方にゴゴジャン(fx-on)のメッセージ機能よりご教示頂けますと幸いです。



2018/09/23 編集:半端な日数であった為「2018年1月3日時点では残高75,545円」→「2018年1月1日時点では残高55,407円」に変更

2018年5月30日水曜日

自身の商品以外でお薦めのEA

ご購入者様より以下のご質問を頂きましたので、その関連の記事となります。

「私に貴方の他の製品シリーズの中から、いくつかお薦めのEAを教えて貰えますか。(翻訳)」
(利大損小百花繚乱EURUSDをご購入下さった外国の方の質問となります)

こちらの方には返信にて自身のEAをお薦めさせて頂いたのですが、ブログでは既に「商品一覧」のページがありますので、この機会に"自身の商品以外で"お薦めのEAや気になっているEAを紹介させて頂きます。



■お薦めのEA
InstaFX
AI技術を応用した本格派EA 新世代EAであなたの生活が変わります
AI技術を応用した本格派EA 新世代EAであなたの生活が変わります?|?fx-on.com
3ヶ月間の収益率ランキングで、長い期間安定して最上位に載り続けているEAです。
収益率が高いだけでなく取引も活発ですので、常にポジションを持っていたい方でもお薦めできる実績を残しておられます。
制作者様は当方と同じくプログラマー・SE出身の様で、親近感を覚えます。
"プログラマー"と一言に行っても、「中学校で英語を習ったから私は翻訳家」と同レベルの場合も本当に多いのですが、ブログをWordPressかBloggerで開設するような方は、生粋のプログラマーである可能性が極めて高いです。
(結構有効な判別方法だったりします:-)

■気になっているEA
梓弓_USDJPY
毎日トレードするデイトレードEAで統計的データから優位性のある法則に基づく手法でトレードします
毎日トレードするデイトレードEAで統計的データから優位性のある法則に基づく手法でトレードします?|?fx-on.com
こちらは3ヶ月間の収益率ランキングでお見掛けして、戦略が面白かったので気になっているEAです。
毎日必ず特定の時間にエントリーをしており、そしてかなり優位性が確認できる結果を残しておられます。
当方のEAは相場の長期的な方向性が定まった上でボラティリティが高くないと積極的なエントリーを行えないものが多く、ポジション保持欲が高い方のご期待に答えられる取引回数とはなっておりません。
ですのでそういった要望が満たせる、こちらのEAの様に定期的にポジションを取って優位性を示せるようなEAもいつかは作ってみたいと考えております。

■全ての原点のEA
一本勝ち
トレーリングストップで幸せに一本勝ち
トレーリングストップで幸せに一本勝ち?|?fx-on.com
当方がEA制作を始める切っ掛けとなったEAです。
このEAと出会った事で勝てるEAも存在すると認識し、自身でも作ってみたいと思うようになりました。
フォワード計測が一年経過した時に、このEAに負けていない、勝っている成績のEAを世に送り出す事が自分の現在の目標となっています。
制作者様は恐らく外国出身の方の為、若干怪しい日本語であったり、商品ページも過剰な宣伝が目立ちますが、実力及び実績に関しては一切疑う余地の無い最高峰の開発者です。

2018年5月23日水曜日

1分足のバーが確定したタイミングで実行するコード

ご購入者様より以下のご質問を頂きましたので、その回答の記事となります。

「コミュニティにて1分足が確定したタイミングで判定していると記述されておりましたが、どういったコードで書けるのでしょうか。」
(EA開発の勉強をなされている方の質問となります)

「単純に一分毎に実行」するのではなく、「1分足のバーが確定したタイミングで実行」する為のコードは以下となります。


//! @class  GoodExample
class GoodExample
{
private:
    string mCurrencyPairName;
    datetime mBeforeBarCreationDateTime;

public:
    GoodExample(string currencyPairName)
    :   mCurrencyPairName(currencyPairName),
        mBeforeBarCreationDateTime(0)
    {
    }

    //! @brief  1分毎の処理。
    void On1Minute()
    {
        Print("On1Minute");
    }

    //! @brief  ティック毎の処理。
    void OnTick()
    {
        // 最新の1分足のバーの形成開始時刻を取得。
        datetime current = iTime(mCurrencyPairName, PERIOD_M1, 0);
        
        // 前のティックでの形成開始時刻と比較。
        if (current != mBeforeBarCreationDateTime)
        {
            // 違うならば前のバーが確定し新しいバーになった=1分毎の更新タイミング。
            On1Minute();

            // バーの形成開始時刻を更新。
            mBeforeBarCreationDateTime = current;
        }
    }
};

GoodExample gGoodExample(_Symbol);

void OnTick()
{
    gGoodExample.OnTick();
}


iTime()により1分足のバーの形成開始時刻を取得し、それが切り替わったタイミングで判定します。
このままですと、起動した一番最初に1分足が確定したタイミングとは別に一度実行されてしまいますので、不都合がある場合は以下の様にコンストラクタでしっかりと初期化しておくと更に良いです。

    GoodExample(string currencyPairName)
    :   mCurrencyPairName(currencyPairName)
    {
        mBeforeBarCreationDateTime = iTime(mCurrencyPairName, PERIOD_M1, 0);
    }
1分毎の処理、5分毎の処理、15分毎の処理…とそれぞれ用意しておくと便利かもしれません。

また、以下のコードでも同様の動作が行えそうに見えるのですが、こちらは良くない例です。

//! @class  BadExample
class BadExample
{
private:
    string mCurrencyPairName;
    int mBeforeCountOfBars;

public:
    BadExample(string currencyPairName)
    :   mCurrencyPairName(currencyPairName),
        mBeforeCountOfBars(0)
    {
    }

    //! @brief  1分毎の処理。
    void On1Minute()
    {
        Print("On1Minute");
    }

    //! @brief  ティック毎の処理。
    void OnTick()
    {
        // 最新の1分足のバーの数を取得。
        int current = iBars(mCurrencyPairName, PERIOD_M1);
        
        // 前のティックでの数と比較。
        if (current > mBeforeCountOfBars)
        {
            // 違うならば新しいバーが追加された=1分毎の更新タイミング。
            On1Minute();

            // バーの数を更新。
            mBeforeCountOfBars = current;
        }
    }
};

バーの数で判定しているのですが、バーの数はMT4の設定の「ヒストリー内の最大バー数」・「チャートの最大バー数」などによって最大値が決まっており、その値に達すると(確か)一定量古いバーを削除するので、減る場合があります。
「>」を「!=」に変えたらそれなりにうまくいくかも知れませんが、MT4側の挙動に振り回される為、基本的にiBars()を用いた判定は行わない方が良いです。
これはバックテストでは検出できず、実際の口座で動かしてから判明する不具合に繋がるので、結構怖い例だったりします。

2018年5月11日金曜日

myfxbook

TitanFX ブレード口座(サーバー:TitanFX-02)でのリアル口座フォワード(Myfxbook)となります。

・GigaGaruraUSDJPY


・GigaGaruraEURUSD


・BALDR NEXT USDJPY


・BravePointGetterEURUSD

※他のEAは初期証拠金1万円辺り0.01ロットで計測しているのですが、BravePointGetterEURUSDは手違いで10倍のリスクの0.1ロットで計測を始めてしまったので、Gainではなく獲得Pipsで比較した方が参考になります。

・利大損小百花繚乱USDJPY


・利大損小百花繚乱EURUSD


TitanFX ブレード口座(サーバー:TitanFX-01)でのリアル口座フォワード(Myfxbook)となります。

・たけぐまシリーズ・ココペリシリーズ・Xenoblastシリーズ・StablePointGetterシリーズ同時運用

※複数のEAを同時に運用している為資産の推移についてはあまり参考になりませんが、「履歴」タブより各ポジションの詳細を確認できますので、同様のエントリーを行っているかどうかの確認が可能となっております。