αを探し求めて

Let's learn a programming language, such as Python, rather than sinking 1000 hours into figuring out how to calculate modified duration

Pips Miner のバックテスト →パラメータ設定決定。3ヶ月で500万円の期待収益

※バックテスト 2000年1月1日~2018年7月20日Alpariのデータを利用

f:id:tomo51840633:20180727162349p:plain

f:id:tomo51840633:20180727162607p:plain

f:id:tomo51840633:20180727162820p:plain

※boost 値を変えてみる -1から10まで変えてみる

f:id:tomo51840633:20180727163841p:plain

→デフォルト値でよいか。

※SLとTPを変化されてみる。

どうもいつも決済されるまでの含み損の金額が大きくて時間も長い気がするので検証。 TPを15、SLを80に設定するとパフォーマンスがよい。

f:id:tomo51840633:20180727173039p:plain

f:id:tomo51840633:20180727175155p:plain

で、最終的には、5月からのデータで決定することにしました。 Boost=0、TP22、SL80、複利、MM%=10% に設定する! 3ヶ月後には500万円たまるはず(皮算用 以下、比較表と5月からのデータでのテスト結果。

f:id:tomo51840633:20180727192027p:plain

f:id:tomo51840633:20180727192129p:plain

f:id:tomo51840633:20180727192203p:plain

いきなり4LOT耐えられるかな?

~ Pips_Miner_EA 取扱説明書 ~

※本EAは「ポンドドル15分足」にて稼働するEAとなります。

「GBPUSD」のチャートを開き、  時間足を「15分足」に設定して、ご利用ください。


【Pips_Miner_EA 設定項目一覧】

【取引時間の設定】

・Entry_Start_hour=22; ・Entry_End_hour=3;

上記が、本EAの、取引時間を決定するパラメータとなります。

上記の場合、 「サーバー時間の22時~3時」が、 エントリー時間となります。

なお、Summer_GMT_Offsetを、適切に入力して頂ければ、 上記の数値は、そのままでご利用いただけます。 (バックテストにて、正常なパフォーマンスとなることを、 事前にご確認ください)


・Magic = 100100; →こちらは、マジックナンバーとなります。 他のEAと、かぶらない数値とされてください。

・TP = 8.0 ・SL = 80.0 →TP値、SL値 となります。


・Souki_close=true(デフォルト:true)

こちらは「早期クローズ」の機能となります。

この機能をON(=true)とした場合には、 TP、SLの値に到達する前に、 早めにポジションをクローズします。

こちらをONとすることで、 より安定した収益性になるのではないかと考えております。


「時間決済機能」

・Jikan_kessai=false(※デフォルトでは、false(=OFF)となっています) ・Jikan_kessai_hours=10

上記を「Jikan_kessai=true」とすることで、 エントリーから「Jikan_kessai_hours(=10時間)」の時間が経過したところで、 ポジションを自動的に決済いたします。

この機能をONとすることで、 万が一、早期クローズでポジションが決済されなかった場合でも、 この時間が経過したところで、確実にポジションを決済する、ということが可能です。 (※Jikan_kessai_hoursの数値は、「10以上」がおすすめです。   詳しくは、バックテスト・最適化テストにて、ご希望にあった数値をご確認くださいませ)


「追撃インターバル(分)」

・Tsuigeki_interval=13;

 このパラメータは、エントリーをした後で、  同じ方向に「追加ポジション」を取る場合に、  ここで指定した数値(=分)だけ待ってから、  追加のエントリーをする、という機能となります。

 この数値を大きめにすることで、  「近いポイントで、多数のエントリーをしてしまう」  という状態を回避することができます。

 なお、デフォルトの13のままでも、  特に問題はないものと考えております。


<『トレーリングストップ』関連のパラメーター>

・Trailing_Stop=false; →トレーリングモードのON設定です。 「true」とすると、ONとなります。 「false」とすると、OFFとなります。 (※falseのほうが、成績が良くなる傾向がみられましたため、  本EAでは、デフォルトを「false」としてあります)

・Trailing_pips=5.0; →トレーリングを発動するpips数の設定値です。

この機能は、一定pips分の利益が出た場合に、 SLの位置を引き上げていく機能となります。

デフォルトでは「ON」としてあります。

また、Trailing_pipsを「5pips」としてあります。

つまり「5pips分の利益」が乗ると、 その時点で、SL値を、デフォルトの80pipsから、 プラマイゼロとなる位置まで、引き上げます。

こうすることで、 仮にそこから値が戻ったとしても、 「プラマイゼロで決済」することが可能です。

さらに、そこからプラス方向に値が進むと、 それに応じて、SL値を、約5秒おきに引き上げていきます。 (※詳細な動作は、バックテストにて、ご確認ください)

・Trailing_pips_plus=2.0; →こちらは、『初期トレーリングにおける、確保PIPS』となります。

トレーリングをONとしている場合に、 最初のトレーリング発動で、 「TP=+2」となる位置に、SLを移動します。

そのため、常に、最低「+2pips」を確保することができる機能、 となります。(ただし、若干、SLとなるリスクが増加します)

なお、この値は、適宜、調整可能ですので、お好みの数値にて、 ご利用ください。m( )m

・Trailing_interval=5; →これは、 「トレーリングを発動する際の、間隔(秒)」 の設定項目となります。

ここが「5」であれば、「5秒おき」に、トレーリングを行います。 あまり、小さな数値にしすぎると、取引サーバーに負荷が掛かり、 MT4口座の使用禁止などの措置を取られる場合もありえますので、 「5以上」として頂くことを、おすすめいたします。

※『トレーリングの間隔』につきましては、  通信環境や、値動きなどの影響もありますので、 「正確に5秒」ということではなく、  おおよそ、その程度の間隔でトレーリングを行う、  という程度にお考えください。


・boost1=0

こちらは、ブースト値の設定となります。 この値を、『0~10』の範囲で変えて頂くと、 トレード頻度、PFが変化いたします。 (※本EAでは、boost値を上げるほど、  トレード回数が少なくなり、勝率が上がる傾向があります)

また、本EAでは、 バックテストをかなり高速で行える仕様としてありますので、 ご利用者様各位にて『最適化テスト』を実施してみていただければ幸いです。

およその目安としては、

「boost1=0」→PF1.5、9800トレード、21000pips獲得

「boost1=10」→PF1.8、2800トレード、7800pips獲得

という程度になるものと思います。


・Lot = 0.1 (※下記の「MM=false」の場合の、固定ロット数です。  「MM=true」とした場合には、余剰証拠金を元にした「複利モード」でのLot計算となり、  ここで入力した「Lot」の値は、無視されます)


<MM(複利モード)関連 のパラメータ>

・MM = FALSE(※マネーマネジメントのオン・オフの設定です。 ここを「true」とすると、MM=ON(複利モード)となります)

・MM_balance_mode = false (※この項目が、デフォルトの「false」の場合には、 MMでのロット計算を『余剰証拠金ベース』で計算いたします。 逆に、このMM_balance_modeを「true」とした場合には、 MMを『残高(=balance)ベース』で計算します。 この違いは、true、false、のそれぞれでバックテストを実施して頂くと、 わかりやすいかなと思います)

・Setting_MM_Percent = 1.0 (※上記の「MM=TRUE」の場合に、 このパーセント分のロット数でエントリーします。 例:「資金100万円で、Setting_MM_Percent=5.0」の場合、 100万円×5%=5万円=『0.5Lot』でのエントリーとなります)

・Max_MM_Percent = 30.0(※Setting_MM_Percentの、上限値です。 うっかり、Setting_MM_Percent=100 などと入力してしまっても、 Max_MM_Percent=30 であれば、 「Setting_MM_Percent=30」に制限されます。 (※誤入力に対する安全対策としての機能です))


・MaxPosition = 3(※最大ポジション数の設定です。 この場合、買い=3ポジション、売り=3ポジションで、 最大6ポジションを取る形となります)


<スプレッドフィルター>

本EAでは、 ・SpreadLimit=2.5 →「エントリー時のスプレッドフィルター」 ・SpreadLimit_close = 3.0 →「早期クローズ時のスプレッドフィルター」

と、それぞれのフィルターを、個別に調整可能としてあります。

お使いの業者様のスプレッドを参考にして、 「その数値よりも少し大きめ」の数値としていただくことで、 エントリー、決済が、よりスムーズに行われるようになります。

なお、デフォルトでは、 「早期クローズ時のスプレッドフィルター」の値を、 「エントリー時のスプレッドフィルター」よりも、少し大きめの値としてあります。

この理由は、 早期クローズがうまく機能しない場合がある、 というお客様からのご意見があったことから、 より、早期クローズが機能しやすいように、 という目的のものとなっております。


・slippage = 4 エトリー時の「スリッページ(=滑り)」の許容値となります

・Countdown_mode = false (※注文と同時にTP,SLを指定できないブローカーでは「true」としてください。   お使いのブローカーのtrue,falseは、バックテストで、きちんとトレードがなされる方をお使いください。   もし、両方ともトレードがなされるようでしたら、「false」でOKと考えます)

・MM_balance_mode = false (※オンにすることで、MMを残高ベースで計算します)

・Summer_GMT_Offset=3; (設定値の例:FXDD「3」など。  お使いのブローカーの「夏時間の期間」におけるGMTを入力して頂くことで、  冬時間への切り替えの際にも、GMTの値を変更することなく、  そのままの状態で、1年を通してご利用頂けます)

 ※夏時間、冬時間の切り替え日にあたる、3/11、11/10に、   内部のGMT_Offsetを自動で変更いたします。

GMT自動設定の条件>   ・夏時間GMTが0の場合→冬時間GMTも0   ・夏時間GMTが+9の場合→冬時間GMTも+9   ・上記以外→冬時間GMTは「夏時間GMT - 1」   上記の内容を、EA内で判断し、自動設定いたします。

【指標フィルター】 - Sihyou_filter - ・sihyou1_day=0; ・sihyou1_hour=0; ・sihyou1_limit_hour=10;

(使い方)  ・指標発表のある日の「日付(1~31)」「時間(0~24)」  ・指標発表時間の何時間前から、EAの新規エントリーを停止するか「0~24」

 上記の各項目を、事前に入力した状態でEAを稼動させることで、   EAの新規エントリーの中止、指標直前(=1時間前)のポジション整理を、自動で実行します。

 <具体的な記入例>   extern int sihyou1_day=20;   extern int sihyou1_hour=21;   extern int sihyou1_limit_hour=10;

  →20日の、21時台に指標発表の予定。   そして、その10時間前から、新規エントリーを中止。   さらに、『指標発表の1時間前』に、もしポジションが残っている場合には、   自動で決済します。

  ※1度に「3回分の指標」を、入力可能です。    1週間に1回、翌週分の指標を入力するような形で、ご利用頂ければと思います。

【英国失業率発表、米国失業率発表 に対するエントリーフィルター】

  • UK_Sityugyo_filter (Every Month third Wednesday (Day 12 to 18) ) - ・UK_Sitsugyo_Filter=true; ・UK_Sitsugyo_limit_hour=5;

  • US_Sityugyo_filter - (UKと同様の項目)

※上記の2つの指標は、値動きへの影響度が非常に大きく、  そして、発表される「おおよそのスケジュール」が決まっております。

 そこで、このフィルターを【ON】としておくことで、  EA内で、その指標発表の日付・時刻を自動的に判断し、  エントリーの制限・ポジション整理(1時間前の自動決済)を実行します。

このフィルターはデフォルトで「OFF」としてあります。

【Friday_Close(週末のポジション持越防止機能)】

(使い方) デフォルトでは、  「Friday_Close = true」  「Friday_Close_Hour = 26」 としてあります。

この状態の場合、「毎週金曜日の26時(=土曜日の深夜2時)」に、  ・ポジションを保有している場合には、ポジションをクローズします。  ・この時間以降、マーケットクローズまで、新規ポジションを取らなくなります。 (※この機能が不要な方は、Friday_Close = false と設定してください)

なお、上記のエントリーフィルター類は、 いずれも「簡易的なもの」とお考えください。 EA内で、基本的には、時間通りにポジションを決済するようにしてありますが、 回線の切断等、予期せずポジションの決済が機能しない場合もあります。

そのため、エントリーフィルターをONにする場合には、 それを信じきらず、ご自身の目でポジションが決済されたことをご確認いただきますよう、 お願いいたします。

【曜日ごとのエントリー制限機能】

・Youbi_Seigen1=0; ・Youbi_Seigen2=0;

上記において、 「1:月曜日、2:火曜日、、5:金曜日」 という形で、エントリーを制限いたします。

例として、

・Youbi_Seigen1=1; ・Youbi_Seigen2=3; とすると、月曜日と、水曜日にはエントリーをしない形となります。

【エントリー時のコメントの編集機能】 ・Entry_comment = "Pips_Miner_EA"

EAの注文履歴に表示される「コメント」の内容を、 任意の文字に変更できるようにいたしました。

上記の"Pips_Miner_EA"の部分を、 任意の文字に変更することで、 注文履歴にその文字が表記されるようになります


以上、かなり盛りだくさんとなっておりますが、 特にLot関連の設定だけは、十分な注意をなされますようにお願いいたします。 (バックテストなどで、エントリーの仕方、ロット数などを事前にご確認くださいませ)

その他、ご不明な点がありましたら、 コミュニティ・メッセージにて何なりとご質問ください。

ねこ博士