はじめましてyamakagasiと申します。ユーザとのコミュニケーションで進化するソフト
ウェアに魅力を感じ、個人でフリーソフトの開発を行っています。「マーケットの魔術
師」に影響を受け、システムトレードを始めたのですが、書籍の内容を何度試しても、
安定して利益をもたらしてくれる魔法の箱を作ることはできませんでした。
研究の結果たどり着いたのが「yaonaka fx」です。
□システムのテーマ
標準化指標ブレイクアウトシステム
淡々と相場の大きな動きに追従するトレンドフォロー
極力シンプルなロジック&シンプルなパラメータ
□ポジションサイジング(マネーマネジメント機能)
マネーマネジメント機能としてR値(期待値)を採用しています。ポジションオープン時の
ボラリティに応じ、最適な幅のSTOPを設定します。
* STOPはボラリティに応じ最適な幅を設定
* リスク(想定損失額)からポジション数を決定
* 使用可能額の増減に対応する%ベースのマネーマネジメント
* 設定する項目は1つ。使用可能額に対する「%」値のみ
※マネーマネジメント機能はON/OFFの設定を行うことができます。その場合、設定した
固定金額での取引が可能です。
□トレイリングストップ
「yaonaka fx」ではポジションオープン時に損失と利益を決定する手法は採りません。
トレンドフォローは勝率で他の手法に劣る点はあるものの、大きな利益を得るための取
引手法です。勝ちトレード・負けトレードの「max profit/loss」「avg profit/loss」の
比率を重視しています。トレイルする幅を固定せずオリジナルの手法で幅と速度を設定し
利益の出る方向へ追従します。
□過度な最適化(カーブフィッティング)
過去の結果が将来に対し有効な保障がないため、PFを上げるための過度な最適化は行って
おりません。しかしながら、1999年~2005年と過去数年間を比べると変動率・流動性に大
きな違いをみることができます。最適化には賛否あるかと思いますが、直近の数年間に焦
点を当てパラメータを調整しました。
□バックテストについて
バックテストはシステムトレードの醍醐味です。一切の制限をかけておりませんので、実
運用を行うにあたり、ご納得できるまでテストください。パラメータと結果からロジック
をある程度判別できるかと思います。バックテストを通して「yaonaka fx」の理念を汲み
取っていただけましたら幸いです。
□ポートフォリオと価格設定について
『最高のシステムは「期待値が1以上の複数のシステム」を「複数の時間軸」と「複数の
市場」で稼動させたポートフォリオである』と定義し、ポートフォリオを組んでいただく
ことを前提とした価格設定とさせていただいてます。
# 複数通貨, 複数時間軸, 反転トレード対応予定
□設定する変数(Expert properties)
* int regularMagicNumber
マジックナンバー: 複数のEAで同じ通貨ペアを取引する際に設定
設定値: int値の範囲で任意の数値を入力
* bool isMoneyManagemet
マネーマネジメント機能: 総資産の増減でリスクを設定
設定値: 使用する(true), 使用しない(false)
* double risk
一回の取引で設定するリスク: マネーマネジメント機能を使用する場合に使用
設定値: 0.03 – 0.05(初期値 0.03)
* int regularRisk
固定額のリスク: isMoneyManagementがfalseの場合に有効
設定値: 円の場合10000-50000(初期値 1000)
* int slippage
許容するslippage: 許容する指値と約定価格との差を設定
設定値: 1 – 10(初期値 1)
* int minimumExitStopDistance
最小ストップ幅: ストップを設定する幅の制限
設定値: 5-25(初期値 20)
* int minimumExitTraillingDistance
トレイリングストップ変更幅
設定値: 1-5(初期値 5)
* double paramCloseExpectation
CLOSEする期待値の条件: 設定した期待値を超えている場合にclose判定を有効とする
設定値: 0.0-2.0(初期値 0.6)
* int paramBollingerBandCount
ボリンジャーバンドの期間
設定値: 18-24(初期値 24)
* double paramBollingerBandStd
偏差: MT4ではint値で定義されてますがdoubleで再実装
設定値: 1.8-2.4(初期値 1.8)
* double paramBollingerBandUpper
BUYシグナルを出す条件の一つ(ボリンジャーバンドの80%より上にある場合)
設定値: 0.8-1.0(初期値 0.8)
* double paramBollingerBandLower
SELLシグナルを出す条件の一つ(ボリンジャーバンドの20%より下にある場合)
設定値: 0.2-0.0(初期値 0.2)
* int oscillatorType
オシレータのタイプ: 0: MFI, 1: II, 2: AD, 3: RSI, 4: WPR
設定値: 0-4(初期値: 2)
* int oscillatorPeriods
オシレータの期間: oscillatorTypeの指標に合わせて期間を設定
設定値: 10-30(初期値: 14)
* int pbBandsPeriod
ボリンジャーバンドの期間: オシレータを標準化するボリンジャーバンドの期間
設定値: 20-50(初期値: 40)
* double pbBandsDeviations
ボリンジャーバンドの偏差: ボリンジャーバンドの上下バンドを設定
設定値: 1.8-2.4(初期値: 2.0)
* int oscillatorMAPeriods
オシレータの平均期間: 指標の方向性を捉えるために使用
設定値: 16-36(初期値: 20)
□指標の標準化について
http://seriometra.net/yaonaka/?page_id=44
「double値に対応した偏差のボリンジャーバンド」や「指標の標準化オシレータ」を
MT4のインディケーターとして表示を希望される方は上記サイトのお問い合わせ
よりご連絡ください。