オリジナルシステムの作成
Ver 1.5以降のM.trading システムトレード開発(Excel) には、ワークシート[Sys]は最初から付属しています。
-
Excelでの数式作成が得意な人向けの、オリジナルのシステムの作成方法を解説します。
ワークシート[Sys]
ワークシート[Sys]を追加
新しくワークシート[Sys]を追加します。ワークシート名は任意で構いません。

日付+時刻+四本値・・・を配置
ワークシート[Sys]で数式を作成し易くするために、E列~O列をワークシート[A]の列にあわせます。
マスターセルに指定
1001行のセルは黄色で塗りつぶしマスターセルに指定します。
数式
各セルの数式は次の通りです。
E1001 =A!E1001 F1001 =A!F1001 G1001 =A!G1001 H1001 =A!H1001 I1001 =A!I1001 J1001 =A!J1001 K1001 =A!K1001 M1001 =A!M1001 N1001 =A!N1001 O1001 =A!O1001
移動平均のサインを追加
移動平均A
移動平均B
移動平均AとB S
数式
ワークシート[MA]の数式を参考に、AA列~AC列を画像のように設定します。
ここでは、ワークシート[MA]で利用されているパラメータ[移動平均A][移動平均B]を使用することにします。
移動平均A AA1001のセル =IF(J1001="","", AVERAGE(OFFSET(J1001,-移動平均A+1,0,移動平均A,1))) 移動平均B AB1001のセル =IF(J1001="","", AVERAGE(OFFSET(J1001,-移動平均B+1,0,移動平均B,1))) 移動平均AとB S AC1001のセル =IF(OR(AA1001="",AB1001=""),"", IF(AA1001=AB1001,AC1000, IF(AA1001>AB1001,1,-1)))
統合シグナルを追加
統合買Entry
サインのいずれかで1(ここではサイン[移動平均AとB S]で1)が発生した場合、シグナル[統合買Entry]が1になるようにします。
統合売Entry
サインのいずれかで-1(ここではサイン[移動平均AとB S]で-1)が発生した場合、シグナル[統合売Entry]が-1になるようにします。
統合買Exit
どてんをするためには、シグナル[統合売Entry]が-1の時、シグナル[統合買Exit]が-1になるようにします。
また、この例では実際には利用されていませんが、15:10の引けに常に-1となるように、IF文の条件にTEXT(F1001,"hhmm")="1510"を加えています。
統合売Exit
どてんをするためには、シグナル[統合買Entry]が1の時、シグナル[統合売Exit]が1になるようにします。
また、この例では実際には利用されていませんが、15:10の引けに常に1となるように、IF文の条件にTEXT(F1001,"hhmm")="1510"を加えています。
数式
統合買Entry CA1001のセル =IF(AC1001=1,1,0) 統合売Entry CB1001のセル =IF(AC1001=-1,-1,0) 統合買Exit CCA1001のセル =IF(OR(TEXT(F1001,"hhmm")="1510",CB1001=-1),-1,0) 統合売Exit CD1001のセル =IF(OR(TEXT(F1001,"hhmm")="1510",CA1001=1),1,0)
利用方法
ワークシート・シグナルを配置
ワークシート[S]で4つのVBAを実行し、ワークシート・シグナルを配置します。
ワークシート[P]にシグナル名が追加されます。
最終行に合わせる
ワークシート[S]で、[A][Sys]にチェックを入れ、[最終行に合わせる]を実行します。
ワークシート[Sys]は[再計算]後に次のようになるはずです。
再計算
ワークシート[P]で画像のようにチェックを入れ、[再計算]を実行します。
解説
- 基礎データとなる日付+時刻+四本値(+出来高)を利用して、複雑な計算を行い、4つの[統合シグナル]を算出するまでを、1つのワークシート内で完結することができます。
- 複雑な計算は、未来の数字を利用しない限り、Excelの限界までいくらでも複雑にすることが出来ます。
- 新しいサインを、AD列~BZ列に作成できるようにしています。また、CE列以降にサインを作成しても問題ありません。
- 日付+時刻+四本値を、E列以降に配置したのは、ワークシート[A]と同様の配置にした方が分かりやすいと判断したためで、A列以降に配置しても問題ありません。
- 4つの[統合シグナル]は、「1か0」あるいは「-1か0」の2つの数値のいずれかになる点以外、通常のシグナルと同じです。従って、例えば[統合買Entry]の2行が続けて「1」になっても問題ありません。新規買いなのかポジション維持なのかは、ワークシート[A]で判断されます。
- 上記の例では、シグナル[統合買Exit][統合売Exit]に、TEXT(F1001,"hhmm")="1510"をIF文の条件に加えていますが、このままでは次の足の始値で返済になります。引け返済を行うには、パラメータ[ExitA買][ExitA売]などの設定も必要です。
履歴
- 2009-11-27 掲載














