M.trading 自動売買ソフト

オリジナルシステムの設定例

ダウンロード

originalSystem.xls

CSVファイルの設定

証券会社.csv

  • 楽天 先物の行の[利用]に「*」を付け設定して下さい。

銘柄.csv

銘柄.csv設定

日経225先物の行の、

  • [ExcelFileName]を、originalSystem.xls
  • [WorksheetName]を、四本値

にします。

M.trading 自動売買(.net)の設定

設定>四本値

銘柄.csv設定

  • 分足時刻を次の通りに、9:00~11:00,12:30~15:10を対象にします。
9:00*	,60000
9:05	,5000
9:10	,5000
9:15	,5000
9:20	,5000
9:25	,5000
9:30	,5000
9:35	,5000
9:40	,5000
9:45	,5000
9:50	,5000
9:55	,5000
10:00	,5000
10:05	,5000
10:10	,5000
10:15	,5000
10:20	,5000
10:25	,5000
10:30	,5000
10:35	,5000
10:40	,5000
10:45	,5000
10:50	,5000
10:55	,5000
11:00	,60000
12:30*	,60000
12:35	,5000
12:40	,5000
12:45	,5000
12:50	,5000
12:55	,5000
13:00	,5000
13:05	,5000
13:10	,5000
13:15	,5000
13:20	,5000
13:25	,5000
13:30	,5000
13:35	,5000
13:40	,5000
13:45	,5000
13:50	,5000
13:55	,5000
14:00	,5000
14:05	,5000
14:10	,5000
14:15	,5000
14:20	,5000
14:25	,5000
14:30	,5000
14:35	,5000
14:40	,5000
14:45	,5000
14:50	,5000
14:55	,5000
15:00	,5000
15:05	,5000
15:10	,60000
  • 追加処理時刻は、15:11,0,0

にします。

設定>自動売買

銘柄.csv設定

[WorksheetName][四本値]のため、ワークシート[四本値]の列・セルを指定します。

  • M.trading処理確認列を、1
  • 日付列を、3
  • 買いシグナルを、>>M2
  • 売りシグナルを、>>M3

にします。

ワークシート[四本値][system]

ワークシート[四本値]

  • M.trading 自動売買ソフトが、ティックデータから四本値を作成し、それが貼り付けられます。
    四本値を貼り付けるためには、[日付][時刻][始値][高値][安値][終値]の列と[処理確認列]の、7列が必ず必要です。

  • このワークシートにある[買い判断][売り判断]のセルを、M.trading 自動売買ソフトが読み取り、シグナルに対応する自動売買処理を行います。
    シグナルを読み取るためには、[買い判断][売り判断]の列あるいはセルが必ず必要です。

ワークシート[system]

  • ワークシート[四本値]から四本値を転記し、移動平均によるシグナルを算出します。

  • [買い判断][売り判断]のセルがあり、シグナルが算出されますが、M.trading 自動売買ソフトが読み取るためには、四本値を貼り付けるワークシート[四本値]にシグナルの数値がなければなりません。従って、ワークシート[四本値]のM2,M3セルに転記します。

ワークブック[originalSystem.xls]では、直近12足をワークシート[system]に転記しシグナルを算出する複雑な処理を行っています。ワークシート[四本値]上でシグナルを算出する方法の方が、後述の時刻のチェックも不要ですので、新しいシステムのワークブックを作成する際には、こちらの方法を検討してみて下さい。

直近12足を転記する方法

直近12足を、ワークシート[四本値]からワークシート[system]に転記する方法です。
VBAを利用すると容易ですが、ここではExcelの関数のみで行う方法を考えます。

  • [処理確認列]の1がある最後の行を含めてそれより前の行を11行
  • [処理確認列]の1がある最後の行の次の行

この12行を転記します。

  1. ワークシート[四本値][処理確認列]は、A列
  2. [最大値]の列で、最後の1のある行のセルが、最大値になる。
  3. ワークシート[system]のD2セルに、その最大値が算出される。
  4. [四本値行範囲]のD1セルは、ワークシート[四本値]B列での、四本値の始める行~最後の行の範囲
  5. [行数変更]の数値は、最後の1のある行番号 - 1 となる。
  6. [行数変更]のD3セルは、C6~I17の数式OFFSETで利用する。

これによって、[再計算]をすると、直近12足の行が転記されます。

[サイン]

移動平均5足と10足とのクロスでサインが算出されます。

IF(AND(J9<=L9,J6>L6),1,

により、

移動平均5足(1足前)<=移動平均10足(1足前) and 移動平均5足>移動平均10足

の時(クロスが発生した時)に、1になります。

移動平均5足(1足前)と移動平均10足(1足前)との位置関係を条件に加えているのは、クロスが発生した時のみ1が発生するようにするためです。
[買い判断]で、1を表示した場合、次に1を表示するまでに5を表示して買い返済を前もって行う必要があります。そうしなければ、買い建玉を複数持つことになるからです。
M.trading システムトレード開発(Excel) のワークシート[A][買い判断]は、買い増しにならないように算出されます。

[買い判断][売り判断]

[買い判断]の数式

=IF(L15=FALSE,0,
IF(L13="150500",5,IF(K12=-1,5,K12)))
  • [時刻チェック]がFALSEの場合は、0
  • 15:00台の行が処理対象行なら、5で返済
  • サインが-1なら、5で返済
  • サインを表示

です。

つまり、[時刻チェック]がTRUEの場合で、サインが1なら、買い判断は1、サインが-1なら、買い判断は5で返済。15:00の足では5返済となります。
ただし、建玉が無くてもサインが-1なら5で返済の自動売買処理が行われるので、この場合はM.trading自動売買ソフトでエラーが発生します。

[売り判断]は、この逆になります。

引け返済

[買い判断][売り判断]の数式

IF(L13="150500",5,

で、15:00台の行が処理対象行の場合(つまり、次の行の時刻が"150500"となる場合)は、

  • 買い判断は、5
  • 売り判断は、5

となり、返済を行います。
ただし、建玉がなくても、返済が実行されるので、この場合はM.trading自動売買ソフトでエラーが発生します。これを避けるには、VBAを利用して、新規注文・返済をしたことを、ワークシート上に記録にすると良いでしょう。
引け成りにするには、自動売買スクリプトの設定で、15:05以降の返済は After 15:05 の条件を追加して、引け成り返済にすると良いでしょう。

M.trading システムトレード開発(Excel) のワークシート[A][買い判断][売り判断]では、建玉が無い場合は返済にならないように算出されます。

処理順序の詳細

  1. M.trading 自動売買ソフトで、PCの時刻が、13:05過ぎになった場合、13:00~13:04:59のティックを利用して13:00台の四歩値が生成されます。
  2. この四歩値がワークシート[四本値]に貼り付けられます。
  3. 再計算を行います。13:00台の行の[処理確認列]のセルは、この段階では1になりません。
  4. 再計算を行うので、ワークシート[四本値]からワークシート[system]に直近12足(13:00台の行と、それ以前の11行)が転記され、[買い判断][売り判断]が算出されます。
  5. [買い判断][売り判断]の数値を、M.trading 自動売買ソフトが読み取ります。
  6. 13:00の時刻の行の[処理確認列]のセルに1が記載されます。
  7. スクリプトに基づいて自動売買処理が行われます。

時刻のチェック

想定外の時刻に売買を行わないようにするために、時刻のチェックを行います。[時刻チェック]がFALSEなら、

=IF(L15=FALSE,0,

で、[買い判断][売り判断]とも0になります。
日付のチェックは行っていません。

上記の例では、13:00台の行の 次の行13:05の時刻と、次の次13:10の時刻の範囲に、現在時刻があれば、[時刻チェック]はTRUEになります。
M.trading 自動売買ソフトは、13:05過ぎに処理を開始し、13:00台の行が処理対象行になります。従って、現在時刻は13:05過ぎのはずであり、また、次の次の13:10未満のはずでなければならないわけです。

例外

15:10の足では、売買しないように、[時刻チェック]をFALSEにします。

時刻チェックを行う理由

[処理確認列]の最後の1の行の次の行が、再計算が終わった段階では、想定している時刻の分足で無い可能性があるからです。例えば、9:00前にワークブックを開かずに、10:30頃にワークブックを開くとします。すると、最初に行われる自動売買は、9:00の行で算出した[サイン]になります。

ワークシート[四本値]を利用して、例えば、J,K列に買い判断売り判断の列を作成し、その列を利用するのなら、問題はありません。この場合は、自動売買ソフトが時刻のチェックを行います。
しかし、このワークブックは、四本値を転記する作業を再計算時に行っているため、こうした想定外の事態に対処することを考えます。順調に自動売買が行われるのなら、問題を防ぐための処理は必要無いのですが、念のため問題が発生した場合のことを考えて、意図しない売買を行わないように条件を組み込んでおくわけです。

履歴