自動売買

自動売買VolPotのLive配信

VolPot(日経225自動売買ソフト)をYouTubeでLive配信していこうとおもったり。

いま使っているもう一つの自動売買ソフトのまねごとです。

まずは、Live中は放置できるPCの準備。これはお得なノートPCを買いました。

つぎに、どうやって動画撮影していくか。

Live配信の場合

「OBS Studio」というのが良さそう。検索したときに上位によく出てるく。

設定方法は、例えば下の記事が分かりやすかった

 https://qou.jp/archives/1598

とりあえず、OBSでやってみることにする。あとはPCが手元に届くのを待つだけ

OBS の設定

ストリームキーを設定

詳細はググれば結構でてくる

マイクをオフ

パソコンに内蔵されているマイクがPCのファンの音を拾ってしまうので、オフにしないとうるさい

終了タイマーのセット

相場が15:15に終わるので、開始から6:30で終わるようにしておけばOK

終了タイマーの設定はググれば一瞬。

タスクスケジューラによる自動起動

ここがミソ。OBSを起動するバッチを準備して、そのバッチをタスクスケジューラで実施しても良いが、せっかくらタスクスケジューラに直接動作を記録したい。

  • プログラムは、「obs64.exe」を選択すればよい。これは普通。
  • 追加のオプションに、「–startstreaming」「–minimize-to-tray」

これで、配信開始状態でOBSが起動できる。あと、トレイ内で起動できるので、エクセルがトップ画面にくる。

ちなみに、「/min」コマンドで最小化の状態で起動できるみたいだが、どうもうまくいかないので、あきらめた。(start /min obs64.exe)

  • 開始オプションはobs64.exeがあるフォルダを選択しておく。

コレ重要。バッチに書くなら、cdコマンドでobs64.exeのフォルダに移動してから実行する動作が、これで再現できる。

OBSコマンド参考

タスクスケジューラの設定参考

タスクスケジューラの参考2

youtube側の配信設定

ライブ配信するには、スケジュール予約をしておくとやりやすい。ただ、これは毎日自動で開始する方法が見つかっていないので、毎日、設定する必要がある。

ただ、配信開始は、別PCからでもできるので、配信元PCが手元になくてもよい。

説明動画を作成して配信する場合

動画にやじるしとか線を書いていくのを「アノテーション」と言うらしい。

それがやりやすいソフトをyoutubeで発見。さすがyoutube。あまり詳しく調べてないけど、まずはこれでいいかなって思い始めた。

 https://www.youtube.com/watch?v=CHAKxdzSU9o

その商品は「EaseUS RecExperts」だそうです。

 https://jp.easeus.com/screen-recorder/index.html?utm_source=YouTube-ZB-202007-Nakamoto&utm_medium=referral

現在有力No.1

ちょっと他にも調べてみます。。。(調べたら、ここ以降を修正)

自動売買VolPotの販売方法検討

有料版VolPotをnoteで販売開始しました。

https://note.com/notes/nd5033dcc3c96/edit

==以下は過去の記事=======================

(作成中:2021.4.13)

ゆくゆくはVolPot(日経自動売買ソフト)を販売していこうと思っている。

そこで個人で販売する上での課題を調査してみた。

まず「金融商品取引業」になっていないこと。

特に「助言業」になっていないことに注意する。

助言業は金融商品の価格の傾向やタイミングについて示唆し、金銭をいただく行為

逆に登録すればOKってことなら登録しようと思いましたよ。ただね、かなーーーーりハードルが高いんです。

金融商品取引業にならないためには

  • ソフトの売り切りは可能
  • 会員制はその用途次第
  • 月額制は不可
  • バージョンアップ前提の配布は不可(
    バージョンアップをすることを前提として販売して、バージョンアップ版を提供したりそれに対し、対価を求める場合)
  • 設定値を変更してもらう場合は誰でも読める媒体でつぶやく(例:新聞、雑誌、会員制でないブログ)
  • 設定値等の変更の仕方を指導する会を催すことは問題ない(ただし、主催者が推奨値を言わないことを徹底すること。参加者(主催者と資本関係や金銭の授受のない方)が何を推奨しようが構わない)

そこで考えた販売方法は以下

販売方法(仮)

  • 不特定多数に売り切り(反社会勢力、同業他社等を除く)
  • ライセンス期限を設ける(例:1か月用、6か月用など)

残課題

バージョンアップをした場合、せっかくなので使っていただきたい。バグとはいかないまでも軽微な修正をした場合、それも本当は更新してほしい。

こうなると、なんとかバージョンアップをした場合に購入者に反映できるようにしたい。

ただ、金融商品取引業にならないためにはバージョンアップ前提での配布が不可のなのでここは残課題としている。

下記は残課題に対するメモ

  • バージョンアップの無償提供ならOKかも
  • noteなどで不特定多数に販売した場合にバージョンアップの無償提供が相性悪い
  • 設定したライセンス期限とバージョンアップ版の差し替えは相性が悪い

別の販売手段検討

ロジックだけをオートレさんとかで販売する。

ただ、ここにも課題あり。現在のオートレさんにはないロジックを使っているので、そのままでは実装できない。。。ほんとはこれが一番楽ちん

謝辞

これらのことの一部はとある企業の社長さんに相談にのってもらいました。大変お世話になりましたので、この場をお借りして感謝を申し上げます。

参考

http://hokkaido.mof.go.jp/kinyu/jouhou/fx-attention.html

http://office-ishikawa.net/archives/3926

自動売買用PCの検討

<追記>この記事で検討したPCでは能力不足だった。後日、別のデスクトップ型PCを購入した。
(岡三RSSを用いた自動売買PCの再検討)

購入前の検討

自動売買に使うPCの購入を検討中。

自動売買はエクセルを利用しているので、

ある程度の計算処理能力は欲しい。だけど価格を抑えたい。

一流有名メーカーはいらないプリソフトがわんさか入っていてお高いだけだから PCは基本的にBTOを販売してるところから買いたい。とりあえず困ったら、はずれの少ないツクモさんから買うようにしてる。

そこで浮上してきたのがこいつ

https://www.tsukumo.co.jp/bto/pc/note/n1400l/2021/N1400L500TSP1.html

6万以下で買えて、スペックも十分だろう。

購入後

外見、サイズ、重さ

全身黒色で統一されていて、無駄がない感じが好き。サイズも14インチなので、実物もちょうどいい感じでした。macbook air 13インチよりも少し大きいが、ほぼ13インチと同じ感覚。

重さはmacbook air 13インチよりも軽い。

動作

これまでcorei3(7th)+HDDのPCで自動売買することがあった。やってやれんことはないですが、少々無理してる感じ。一方、corei7(9th)+SSDで自動売買することもあるが、これはスペックとして十分すぎる感じ。

corei3(7th@ノート)を低スペック、corei7(9th@デスクトップ)を高スペックとすると、体感的にもちょうど中スペックとなったのがcorei5(8th@ノート)となった。価格とのバランスでちょうどいいと思う。

計算速度で言うと

corei5(8th@ノート) = corei3(7th@ノート)の3倍程度

corei7(9th@デスクトップ) = corei5(8th@ノート)の2倍程度

その他

少しファンが元気な感じ。価格を考慮すれば妥当だが、静音でなければ嫌な人は控えた方がいいかも。ただ、自動売買専用PCの場合、普段は触ることないので、生活範囲から離れたところに置いておけば問題ない。

【カジカの自動売買記録】2021年4月

いままではtwitterで記録していたけど、振り返るときに面倒なので、ブログに記録していくことにした

月間成績

4/12~4/30:+36466円

月間の成績は一応プラス。でも、最終週でVolPotが大きくマイナスなのが気になる。でも、とりあえず、このまま継続。5月GW明けはトレンドが付きやすいはずなので、期待します。

週間成績

4/12~4/16:+42394円

一部細かく記録をとっていないため正確ではないが、まああまりズレないとおもう。

【VolPot】19502円

今週はプラスでした。いままで週間でまとめるとかしてこなかったので、週間成績とか月間成績とか、良い振り返りになると思った。これまでは、ロジックが固まってなかったので週間成績とかはあまり意味がなかったが、ロジックが固まってきたのでこれからは意味があると思う

【ロボたま】+22892

稼働時間と枚数はVolPotよりも少ないが、成績はVolPotよりも良かった

4/19~4/23:+63024円

【VolPot】+70956円

後半失速しましたが、途中で爆益があったので、好成績で終了。ひとまず、週間単位で勝てたので合格でしょう!

【ロボたま】-7432円

主に柳井さんとOPENを稼働。来週から選手を交代します。ぶち一択でトライ

4/26~4/30:-69452円

先週好調だったVolPotが不調。

以下、詳細成績

4/12デイ

【VolPot】

+6000円

相変わらずMACDが好調ですねー。もちろんただのMACDではないですよ。ダマシを回避してるやつです。

MOD1のExitをミスしてました。週末に変更した部分が見事にミステイク。

ドラニーニョがなぞの3回エントリしてた。なぞなので様子見。つづくようなら修正検討します。

【ロボたま】

+1.2万(OPNEと柳井さん)

4/12ナイト

【VolPot】-8000円

4/13デイ

【VolPot】実売買0万円。

見た目を少し変更。そのロジック(注文)を使っているか分かるようにしてみた。ONとなってるやつが実売買に使用しています。10個の注文が可能ですけど、損失したときにダメージがでかくなるので控えめに利用してます。


ちなみにVolPotにはシミュレーション(デモトレード)の機能も搭載しています。下図はその結果。実売買とはちょっと変わってきます。約定できるときとできないとときかあるからです。シミュの結果をみると、全注文を稼働させなくて正解でしたね。

【ロボたま】-1万円

4/13ナイト

【VolPot】-1500円。

引けで決済されると内部の「メモ」が残らないので画面に反映されません。引けで+3500円(注文3)あるので、スクショと合計して-1500円となります。

4/14デイ

【VolPot】+1.4万円

面倒くさがって朝のエクセル再起動を怠ったら、9時頃のにVolPotの挙動がおかしくなった。そこから岡三RSSとエクセルを再起動。今日は想定した挙動と大きく違うけど、なんだかんだで朝の急落でしっかり取れてたので良しとしておきます。後半は、小さいLCが連続したので減収。

【ロボたま】+1000円(柳井さんx1 のみ)

4/14ナイト

【VolPot】+2500円

4/15デイ

【VolPot】+5000円

注文1は最近調子がよかったんですけど、残念でした。その代わり、注文3と6が頑張ってくれました。

下はシミュレーションの結果。ほかの注文も調子が良かったみたいですね。やはり上の実売買とは少しちがうものもあります。

【ロボたま】+1万円

4/15ナイト: -1770円

【VolPot】-1770円

注文1のみでした。マイナスでも少額だったのでまあ、良しとします。

4/16デイ:+23636 円

【VolPot】+13744円

注文6は結構自信があったですが、ちょいまけ。でも損小なのでOKとします。


【ロボたま】+9892円

4/16ナイト:-10094円

【VolPot】-10094円

最近買ったPCで運用中。どうやら夜中にwindowsの更新プログラムが作動したみたい。たぶん、朝まで動いている履歴だったのでたぶん大丈夫だとは思うが、今後動作が不安定になる可能性があるので、更新プログラムはオフにしておいた。

参考:更新プログラムを切る)https://boctok-pc.co.jp/autopc-setting/

4/19デイ:+10082円

【VolPot】+8190円

最終結果はコレ

朝一は+2.5万くらいまで獲得できたけど、そのあと、注文1と3が小幅にロスカットを重ねて減益。相変わらず注文6が強い。 

途中のスクショ(下図)

【ロボたま】+1892円

柳井さんx1(-7000円)とOPEN(+9000円)。

4/19ナイト:+21460円

【VolPot】+21460円

注文1がガンパってくれた感じです。注文3はどうやらたまたまプラスみたい。注文3はマイナスの人が多いっぽいです。なんかすんません。両方プラスのなので結構いい成績。

スクショはこちら

4/20デイ:+2676円

【VolPot】+9230円

注文3が残念でした。スタートで逆でしたねー。ただ、相変わらず注文6が強い。あと、注文1が頑張ってくれたので、結果はプラス。

スクショ

【ロボたま】-6554円

OPENのみ稼働。柳井さんは動かず。OPENは選手交代するかも。

4/20ナイト:+17920円

【VolPot】+17920円

ナイトはプラスでした。寝る前は注文1が爆益だったのですが、起きたらその利益がふっとんでいましたw。代わりに注文3が爆益w。

ただ、注文3は人によって結果が大きく違うみたいです。

この理由はどうも歩み値自体の情報がうまく取得できていないことな感じです。

開発者としては、ここを問題ととらえて、対策をしていきたいです。

ただ、対策方法が。。。わからん。。。

スクショ

4/21デイ:-16958円

【VolPot】-11850円

全てマイナス。とりあえず、一つ一つのロジックで大損していないことが救い。注文9は、今朝からの調査ロジック。ベースは注文3。本来はシミュで確かめてから実売買すべきだけど、実売買しないと、「過程」を見ていないことがおおいので、実売買によって調査中。注文9>注文3になるのであれば、注文9が注文3に昇格する予定。

シミュでは、注文4と注文8がよかった。注文8については、過去の結果をさかのぼってみていい感じなら実売買採用してきたい。

スクショ


【ロボたま】-5108円

柳井さんとOPENの両者マイナス。

4/21ナイト:+50488円

【VolPot】+50488円

注文1が不調でした。寝る前はプラスの状態だったのですが、起きたらストップ制限にひっかかってました。

一方で、注文3が快調でした。その派生の調査ロジックである注文9も同じく快調。おかげさまで、今月一番の利益が得られました。一晩で先週の利益を超えるという。

最終結果

スクショ

4/22デイ:-11958 円

【VolPot】-8850 円

注文3を改良中(=注文9)。エントリ後に逆行したら早期撤退をさせているのが、最終的に損小とすることができた。

最終結果

スクショ

【ロボたま】-3108 円

4/22ナイト:-24080円

【VolPot】-24080円

あー。マイナスですね。どれもマイナス。もう少し奮闘してほしいとこれでしたが。。。

分かったこともあります。注文9(注文3の派生かつ調査ロジック)が負けてるときは、注文3も負ける。デイの結果では、注文3が負けていても注文9はちょい負け。そろそろ注文3はくびですね。次のデイも一応回しますが、ほぼ確定です。

4/23デイ:-17958 円

【VolPot】-22904 円

注文3はこの回で終了。調査してた注文9が昇格します。おつかれさまでした。

注文6を2枚で運用してみました。過去の成績みると、「損小利大」がしっかりできていて、期待値もあるので、枚数増やしてもいいんじゃね?って感じで増やしてます。来週は3枚?w

【ロボたま】+4946円

本日からブチ一択になりました。

柳井さんとOPENは選手交代。

4/23ナイト:31352円

【VolPot】+31352円

注文1が頑張ってくれました。

設定変更

4/26デイからVolPotの注文番号を入れ替えます

注文1(←旧注文6)
注文2(←旧注文1)
注文3(←旧注文9)
——以下は開発中とする——
注文4(←旧注文8)
注文5(←旧注文2)
注文6(←旧注文4)
注文7(←旧注文6)
注文8(←旧注文7)
注文9(←旧注文3)
注文10(←旧注文10)

4/26デイ

注文1に期待してたので、3枚。それ以外を1枚。それが仇となった。すべて1枚ならトントン

4/26ナイト:記録なし

PC調整のため、一時停止

4/27デイ

4/27ナイト

注文4を検討開始。注文1の連続版。こいつのお陰でトントンで終わってた。

ロボたまの方は、今日からブチ一択です。本日プラス。

4/28デイ

VolPotについて

なんとかプラスって感じでした。注文4は注文1の連続版だけど、その味付けを少し変えた注文5のシミュが良かった。ナイトから実売買でも検証する。あと、VolRとしているロジックが結構いい感じなので、これも実売買に導入している。

VolRの注文番号はころころ変わっているので、まあ、過去はどれだったか覚えてないけど、なんとなく、良い感じ。

ロボたまについて

期待のブチ君がマイナス。残念。

4/28ナイト

VolRを注文6に設定して、実売買してみた。結果、そいつだけプラスw

いれててよかった。今後、どうなるか。

4/30デイ

4/30ナイト

注文1~5までがほぼロジックとして固まってきた。注文6(VolR)は一部検討中(注文7にするかも)。注文9を注文5(連ニーニョ)の派生で検討中。

VolPot開発秘話

こんにちは、カジカです。

自動売買VolPotの開発秘話をすこし。

VolPotは、出来高ポテンシャル理論に基づいて設計されています。

出来高ポテンシャル理論って?

出来高ポテンシャル理論(Volume Potential theory)もカジカが独自で考案したものです。

なので、一般用語ではないです。

出来高ポテンシャル理論の詳細は非公開ですが、そこからトレンド相場やレンジ相場、レンジの範囲や真の価格変動幅がわかります。

しかも、これらが定量的に計算できます。そのため自動売買に組み込むことができました。

その出来高ポテンシャル理論ですが、もともとはトレンド相場を予測するために考案しました。

とある市販の自動売買を使ってみた経験があります。その市販ソフトはトレンド相場が発生すればそこそこいい成績になるのですが、一方、レンジ相場になると、からっきしダメで、トータルするとむしろマイナスになるという悲惨なものでした。でも、そのソフトを(はじめは良いものだと信じて)使いなそうと努力し、なんとかトレンド相場のみ稼働させることはできないものかと試行錯誤しました。そこで発見したのが出来高ポテンシャル理論です。

なので、出来高ポテンシャル理論はトレンド相場の予測には結構自信があります。もちろん、トレンド相場がわかるならその逆でレンジ相場もわかります。

現在のVolPotはレンジ相場に特化した設定になっています。

これはバックテストをちょっとした結果、VolPotの性質上、トレンドを追いかけるよりもレンジの上下で利益を積み上げた方がプラスになる結果だったからです。

ここまでが出来高ポテンシャル理論の話。

それで、出来高ポテンシャル理論を自動化させればカンペキ!だと思ってその自動化を開始。

これが最終的にはVolPotとなるが、VolPot以前から自作で自動売買ができるようにはしていました。

いまはもうお陀仏になっていますが、MASMALというソフトを開発しました。これはいわゆるシステムトレードです。移動平均線、MACD、ボリンジャーバンドなどを組み合わせてトレードするシステムです。この開発にも数か月かかっています。ただ、最終的には損失が膨らんで断念。

結局、いわゆるシステムトレードでの限界を感じている時期がありました。(なお現在はシステムトレードのよいところも実感しています。オートレで好成績の方もちらほら見かけています)

その次に開発したのが歩値分析によるロジックです。名前はTIFOと命名しました。tick forceの略ですけど、これ自体も自分で勝手に命名したので一般的な呼び名ではないです。

TIFOは過去のデータではなく、今の状態による売買方法です。

TIFOの考え方を思いついたときは、これこそがきっと勝てる方法だとおもいました。ただ、いくつか思いつく方法でトライしましたが、なかなか結果が出せず、これも断念。(その後、復活する)

MASMAL、TIFOと断念が続き、自作自動売買の光がきえかけていました。

そのあと、市販ソフトに手を出して、これも失敗。

ただ、この市販ソフトを使ったときに冒頭の出来高ポテンシャル理論を考案。

ここで、もう一度、自作自動売買に挑戦することにしました。

しかも、そのころには、数名の仲間ができていて、自分のロジックをいろいろ検証してくれる、なんともありがたい方々でした。

自動売買の仕組み自体はMASMALとTIFOで構築済みだったので、出来高ポテンシャル理論をエクセルに落とし込むだけで自動売買ができる見込みがあったので、さっそく実装開始。

ロジックをエクセルに落としては、仲間に配布してそのフィードバックをもらう。フィードバックがあるから、その改良を行って、またフィードバックをもらう。この繰り返しを何度も。

そして出来高ポテンシャル理論をエクセルに落とし込むことがついにできました。あとは構築済みの自動売買に組み込むだけでカンペキな自動売買ができると思っていました。

しかし、その後、自動売買を実装してみると成績はあまりよくありませんでした。裁量ではこの理論に基づいて取引すると、かなり好成績なのになぜか自動売買ではうまくいかない。など、大きな壁にあたりました。

なぜうまくいかないのか分からなくなり、VolPot専用のバックテストプログラムまで開発しました。バックテストで分かったことは、自分がよいと思っていたことも勝率が悪かったりしました。もちろん、良いところも発見できたので、今はその部分だけ残しています。

バックテストとフォワードテストを重ねてVolPotの苦手な相場もどんどん明らかになりました。

それが大きなトレンドを形成するときです。

なんとかトレンド発生を回避する方法がないかと考えましたが、最終的には断念しました。

代わりに、復活したのがTIFO君。しかもバージョンアップして復活。

現在のTIFOは、トレンド発生時にめっぽう強いロジックです。

時を同じくして、クオンツトレードというものを主体とする市販ソフトが登場(前述のものと異なる)。

しかもこの市販ソフトは結構自信があるっぽい感じ(開発者の熱意が感じられる)。

そのロジックの基本的な考え方は、なんとTIFOと同じ(笑)。もちろん、詳細は違いましたけど。そこで、TIFOにも自信がつきました。

それで、

VolPotとTIFOがお互いに補完しあって売買をするという方法に落ち着きました。

レンジ相場につよいVolPotとトレンド相場につよいTIFO。
両者ともいわゆるシステムトレードではないです。
VolPotは、人の気持ちに着目した売買方法、
TIFOは、今の状態による売買方法です。

内部的にはVolPotとTIFOは別物ですが、やはり主役はVolPotなので、

ソフトの名前もVolPotにしています。

今後とも、VolPotをよろしくお願いします。

カジカ

【VolPot】トラブルに関して(一般公開)

岡三RSSが切断しましたとメッセージがでる

岡三RSSと通信の問題です 。VolPotのトラブルではありません。稀に発生する程度では、動作にも影響がないので心配いりません。切断が頻発する場合はロジックに影響を及ぼすのでネット回線の設定等を見直してください。

岡三RSSから毎朝、毎週末に停止しますとメッセージがでる。

岡三RSSの仕様です。 トラブルでもはありません。動作にも影響がないので心配いりません。

(廃止)書き出し時にエラーとなる

原因1)「data」という名前のフォルダ(空でよい)がVolPotと同じ階層にあることをご確認ください

原因2)VolPotを起動させている状態で、VolPotと違う階層でエクセルを起動させた場合にも発生します。VolPotを再起動させてください。

原因3)zipファイルの状態となっている。zipを解凍してください。

問題が解決したかどうかの確認方法は、「モニタ」シートの「書き出し」ボタンを押下して、./dataにその時間のファイルが生成されていれば正常状態です。

グラフが表示されない

原因1)岡三RSSをアドインしてください

原因2)PCが32bitでないことをご確認ください。PCは64bitのみに対応しています。正確には32bitでも動作可能ですが、内部のパスをご自身で修正してください。

原因3)岡三RSSが動いていない時間帯

原因4)岡三RSSのアドイン階層が間違っている。この場合、VolPot指定のフォルダ階層の岡三RSSをアドインしてください。

岡三RSSがアドインできない

原因1)エクセルがmicrosoft製ではない

原因2)エクセルが2016または2019ではない(365は岡三RSSの対象外)

意味不明なところで注文が入っている

バグの可能性があります。詳細をご連絡ください

気が付いたらエクセルが落ちてる

メモリリークによってエクセルが落ちることがあります。現在、メモリリークの解決はできていません。

設定が保存されない

zipファイルのままの可能性があります。zipファイルを解凍してください。

グラフは更新されるのにロジックが稼働していない。

グラフが更新されているのにロジックが稼働していないときは、現在値がゼロになっていないかを確認してください。現在値がゼロの場合、ロジックは稼働できません。この場合、岡三RSSのアドインが正常にできていない可能性が高いです。岡三RSSのアドインを確認してください。

グラフや歩値は更新されるのに、現在値がゼロのまま

現在値がゼロの場合、ロジックが稼働できません。過去の発生事例は下記です。

・エクセルのアドインに「岡三RSS」にチェックが入っていない。アドインで「岡三RSS」にチェックを入れてください。

・ネット回線が不安定で岡三RSSの接続と切断を繰り返す。この場合は、ネット回線が安定的になるようにしてください。

・VolPotが破損した。岡三RSSのアドイン設定をしている間に、VolPotの内部関数が上書きされてしまうことがあります。この場合は、再度VolPotを入手し直してください。

岡三RSSの切断が頻発する(ネット回線が不安定)

以下の可能性があります。

・モバイル回線を利用している。この場合、光回線に変更してください。

・WiFiを利用している。この場合、有線LAN接続に変更してください。

・ルーターやモデムの動作不良。この場合、ルーターやモデムの再起動や交換をしてください。

・LANケーブルが故障。

・イーサネットの接続に問題がある。この場合、イーサネットのドライバ(LANドライバ)を見直してください。更新や設定を変更することで安定した回線動作になることがあります。

simulatorのキーワードマニュアル

このページでは、simulatorで利用するキーワードを説明する

現在用意されいるキーワードは以下である

  • *control_DOW
  • *control_file
  • *control_hold
  • *control_PEEK
  • *control_profit
  • *control_RSI
  • *control_RST
  • *control_simulation
  • *control_SMA
  • *control_term
  • *control_termination
  • *control_values
  • *control_VOLPOT
  • *define_environment
  • *define_entry
  • *define_order
  • *include

以下より、各キーワードの詳細説明

*define_order

オートレ225のバックテスト用に開発。このキーワード1つで1つの注文を定義する。
注文内に複数のand条件がある場合は、1つのキーワード内で定義しておく。
*define_orderは重複して設定可能なキーワードである。
注文が複数ある場合(すくなくとも新規注文と決済注文の2つはあるはず)は、新たにdefine_orderを定義する。 例えば2つの注文がある場合は、define_orderを2つ定義することになる。
注文処理順序は、define_orderの定義順序となる。 条件の処理順序は、条件を定義した順序となる。 条件を指定するオプション(termAa,Ab,Ba,Bb)の番号は、デフォルトでは条件一覧(別紙)に従う。 より正確にはcontrol_termで変更可能(非推奨)。
例)当日価格関連の現在値:termAa=1,termAb=1

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる
oid bs quan oprice nterms offprc cnctime
2行目以降のカラムは次の順序で読み取られる。2行目以降の読み取り行数はntermsに従う。
termAa termAb termBa termBb termC termD

oid 注文予約のid番号(現在は使われていない)
bs 売買の選択
bs = 11 新規売り
bs = 12 返済売り
bs = 31 新規買い
bs = 32 返済買い
quan 取引枚数
quan = -1 全残数(返済時)
quan .ge. 1 取引枚数=quan. (ただし、現在は1枚のみに対応)
oprice 発注価格の指定。指値と成行を指定。(未開発)
oprice = 1 指値発注
oprice = 2 成行発注
nterms 条件の個数。ここで指定した個数分のtermA,B,C,Dを記述必要がある。

offprc オフセット指値の値。正の値を入力し、買いポジションなら現在値-offprc、売りポジションなら現在値+offprcで指値注文をだす。成行の場合は0以下とする。

cnctime オフセット指値注文した際のキャンセル時間の指定。値はシリアル値を使用。ただし、場が終わると時間にかかわらずキャンセルされる。


termA 「が」を指定。指定方法は条件一覧に従う 例)現在値が termA=111
termB 「の」を指定。指定方法は条件一覧に従う 例)直近60分足高値の
termC 「値」を指定 例)-100
termD 「以上、以下」を指定
termD = 1 以下
termD = 3 以上

*control_EMA

指数平滑移動平均線を制御するキーワード

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

gap 寄りの窓を埋める
gap .eq. 0 使用しない
gap .eq. 1 使用する

VM VM(=volume method : 出来高手法)の制御。VMは横軸に出来高を取った場合で計算する。
VM .eq.0 使用しない
VM .eq.1 使用する

VMn 横軸の一単位あたりの出来高数

*control_file

入力や出力のファイル制御に関するキーワード

キーワード内の規則について
1行目のカラム(列)の読み取り
inpfile
2行目のカラム(列)の読み取り
outfile

inpfile 足データのファイル名。足データを読み込むことでバックテストを可能にする。1分足のデータを想定して開発されているが、その限りではない。
ただし、1分足以外の場合は、control_termやconrol_smaを付随して変更する必要がある。
inpfileが実行ファイルと別のフォルダにある場合、windowsでは「’」「’」で囲む必要がある。
outfile 結果の書き出しファイル名。

*control_MACD

MACD(=moving average convergence and divergence)を制御するキーワード

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

macdid macdの管理番号

curveA MACDを計算する際のcurveA。計算式は下記参照
curveA .eq.1 control_SMAで定義したcurveを利用
curveA .eq.2 control_EMAで定義したcurveを利用

curveidA curveA内のid番号。

curveB MACDを計算する際のcurveB。計算式は下記参照
curveB .eq.1 control_SMAで定義したcurveを利用
curveB .eq.2 control_EMAで定義したcurveを利用

curveidB curveB内のid番号。

signal signalの利用フラグ。
signal .eq.0 signalを計算しない(MACDとなる)
signal .eq.1 signalを計算する(MACDとならない)。signalの計算は単純移動平均(SMA)を用いる
signal .eq.2 signalを計算する(MACDとならない)。signalの計算は指数平滑移動平均(EMA)を用いる

signalN signal.ge.1の時に有効。signal の計算に使用するN数

MACD=curveA-curveB
signal=SMA(MACD,signalN)

*control_simulation

シミュレーションの基本動作を設定するキーワード

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

1行目のカラム(列)の読み取り
nsim icheck osim ostep ostart oend
2行目のカラム(列)の読み取り
contract slip cost

例)
*control_simulation
$ nsim icheck osim ostep ostart oend
1 0 1 1000 1 30000000
$ contract
5.0

nsim シミュレーションの個数(現在は使われない)

icheck 詳細出力のオプション
ichech=1 詳細出力はなし
ichack.ge.1 isim番目の詳細を出力

osim 出力オプション
osim=0 出力なし
osim=1 dtstep間隔で出力
osim=2 セッションごとに出力(合計)
osim=3 セッションごとに出力(小計)

ostep ファイル書き出しするステップ間隔

ostart 書き出しの開始ステップ

oend 書き出しの終了ステップ

contract 約定判定の判定価格。指定の価格に対してcontract分だけ不利な分の価格変動があった場合に約定できたとする。例えば、contract=5とした場合、20000円で買い注文をいれているとき、19995円になれば約定できたとみなす。
contract=0の場合、いつでも指定の価格で理想的に約定できることになる。
contract=0の場合は、とくにスキャルピングにおいてバックテストの結果が非常に良くなることがある。しかし、現実は指定の価格を下回る(上回る)場合に約定できることがおおい。その現象を再現するために導入された機能。推奨はcontract=5。contract=5で勝てるロジックを追求するのが望ましい。

slip (未実装) スリッページの指定。

cost (未実装)手数料の指定。

*contrrol_termination

終了条件を設定するキーワード

nstep 終了するステップ数。読み込んだデータより多い場合は機能しない

dstep コマンドラインに出力するステップ間隔。ファイル出力の間隔とは違う。

duse 4本値のどれでバックテストを行うか
duse=1 始値,高値,安値,終値でエントリーと利確を探索。探索順序は始値,高値,安値,終値
duse=2 高値,安値,終値でエントリーと利確を探索。探索順序は高値,安値,終値
duse=3 安値,終値でエントリーと利確を探索。探索順序は安値,終値
duse=4 終値でエントリーと利確を探索。探索順序は終値

*control_term

発注条件を指示する項目を制御するキーワード。オートレ225のバックテストをするために開発された。

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

nterm define_orderで使用するtermの定義個数 term_a カテゴリの定義番号 term_b 値項目の定義番号 category term_aとterm_bの組み合わせの時の使用するカテゴリ番号。以下の中から選択する。          5,6,7,8はcontrol_でその動作を指定する。
1=quote
2=time
3=hold
4=profit
5=value
6=SMA
7=MACD
8=RSI
9=BollingerBand
10=stochastic
11=DMI
cateid categoryで指定したcontrol_*内のid番号。
例えばcategory=5のときcateid=vidを示すことになる
Cofset 必要な場合に指定。オフセットする量
Cofset=0 その瞬間の値または確定前の値。または不要な場合。
Cofset=1 直近または前日
Cofset=2 1本前または2日前
Cofset=3 2本前
Coffse=4 3本前
Cadd 必要になる場合の追加のオプション。
         category=5 の場合、Caddは4本値の種類を示す。
Cadd=1 始値
Cadd=2 高値
Cadd=3 安値
Cadd=4 終値

*control_values

4本値を制御するキーワード

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

nval 4本値の定義個数
oval 4本値の出力オプション
oval=0 ファイル出力なし
oval=1 out_values.datを出力
vid 4本値の定義ID番号
peri 四本値の作成期間.例えば1分足を読み込んでいる場合の5分足を作成する場合は、peri=5とする
vsec セッションをまたぐ際の区間の取り扱いオプション
vsec=0 考慮しない
vsec=1 セッションをまたぐときに、4本値を一度区切る
vsec=2 取引日(16:30~翌15:15)をまたぐときに、4本値を一度区切る
vsec=3 営業日(8:45~翌5:30)をまたぐときに、4本値を一度区切る

*include

他のファイルを読み込むためのキーワード。指定したファイル名を追加で読み込む。

*control_PEEK

HL peekの山谷の探索側。
yPEEK=1 谷を探索。
yPEEK=3 山を探索。

vid peek作成に使用する四本値のカーブid番号.

LPEEK 探索時のlaplasinaオプション
LPEEK=0 off
LPEEK=1 on

aPEEK 探索範囲パラメータ。smaの範囲の値

*control_VOLPOT

出来高ポテンシャルを制御するキーワード。
VolPot用に開発。

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

nVP oVP oVPstep puse
vpid vptm L1 Lm P1 Pm TS1 TSp

nVP シミュレーション個数

oVP 出来高ポテンシャルの状態出力オプション
.eq.0 出力しない
.eq.1 型式を出力
.eq.2 型式、各サイン、エントリ価格、損切価格、利確価格

oVPstep 出来高ポテンシャルを出力するステップ数。oVP.ge.1のときに有効

puse 利確損切の利益計算方法
puse=1 指定の利確、損切値を損益計算に採用(未実装)
puse=2 決済タイミングでの終値を損益計算に採用

vpid 使用する出来高ポテンシャルの固有番号。*define_volumepotentialで指定する。

vptm 保有期間
vptm=1 セッションをまたがない
vptm=2 セッションをまたぐ(未実装)
L1 最小損切
Lm 最大損切
P1  最小利確
Pm 最大利確
TS1 TS価格(未実装)
TSp TS%(未実装)

*define_VOLPOT

出来高ポテンシャルを定義するキーワード

キーワード内の規則について
キーワード内のカラム(列)は次の順序で読み取られる

vpid vid vptermS vptermE vptermD vidD
dVP dVPa dVPf dVPsma
kvph11 kvph12 kvph13 kvph14 kvph15 kvph16 kvph17 kvph18 kvph19 kvph110
kvph21 kvph22 kvph23 kvph24 kvph25 kvph26 kvph27 kvph28 kvph29 kvph210
vph11 vph12 vph13 vph14 vph15 vph16 vph17 vph18 vph19 vph110
vph21 vph22 vph23 vph24 vph25 vph26 vph27 vph28 vph29 vph210
vph31 vph32 vph33 vph34 vph35 vph36 vph37 vph38 vph39 vph310
vph41 vph42 vph43 vph44 vph45 vph46 vph47 vph48 vph49 vph410
kvph31 kvph32 kvph33 kvph34 kvph35 kvph36 kvph37 kvph38 kvph39 kvph310
vph51 vph52 vph53 vph54 vph55 vph56 vph57 vph58 vph59 vph510
vph61 vph62 vph63 vph64 vph65 vph66 vph67 vph68 vph69 vph610

vpid vpidの番号
vid 出来高ポテンシャルの作成に使用する4本値のカーブ番号
vptermS ポテンシャル開始を指定する。
.ge.1 5日間のデータから開始する場合(未実装)
.lt.0 利用されない
vptermE ポテンシャル終了を指定する。vptermSが0以下の場合、取得本数を指定。
vptermD 基準期間(日)
dVP 分割数
dVPa 平均範囲
dVPf 分割方法
dVPsma 追加の平均個数

vpp1 極小切り捨て割合
vpp2 出来高比a
vpp3 出来高比b
vpp4 出来高比c

kvph11 利用の有無(1の型)
kvph21 極小個数(1の型)
vph11 価格幅率a(1の型)
vph21 価格幅率b(1の型)
vph31 価格幅率c(1の型)
vph41 エントリ極小比(1の型)
kvph31 エントリポジ方向(1の型)
vph51 損切極小比(1の型)
vph61 利確極小比(1の型)

============================

*define_orderに関する補足

「建て後損益/価格差での損益」に関する特殊処理

この項目を選択した場合で、かつ、次を満たす場合は、termCの値をそのまま損益に計算する。これは、固定の利確幅や損失幅(LC)を設けた場合、その価格に到達したときには、その指定価格が損益に加算されることを想定している。

利確値または損失値に到達したかの判断は、1分足の始値、高値、安値、終値の順で判断する。

ここで、始値で条件を満たした場合に限り、termCの値を使わない。損益値は始値と建値の差分で評価する。これは、寄り付きのときのギャップや、瞬間的に窓を開けた場合に対応するようにしている。

ポジションを持っていること

termBに指定がないこと(なしの指定)

termAbが1であること。

ここで、termAbが2の場合は、1分足の始値のみで価格差を判定する。

建て後ピークまたは、建て後ボトムでの判定

建て後ピークと建て後ボトムは、その条件を満たした場合に始値で損益を評価する。この場合、スリッページが発生することがある。

以下、未実装なキーワード

*control_RST

レジスタンス サポート トレンド 法
nRST RST法の個数
oRST RST法の出力オプション
stRST RST法の戦略
stRST=0 no use
stRST=1 RS1のサポートとレジスタンス比率がpRST以上の時を買いの環境認識とする

enRST RST法のエントリー方法
enRST=0 環境認識にすべて従う
enRST=1 ・・・が・・・になったとき
enRST=2 ・・・が・・・になったとき
enRST=3 ・・・が・・・になったとき
enRST=4 ・・・が・・・になったとき

RSi 使用するi番目のPEEK番号

*define_environment

envid id番号
envst 環境認識のストラテジー方法の選択
envst=1 dow理論
envst=2 macd
envst=3 bollinger band

*define_entry

entid id番号
entst エントリータイミングのストラテジー方法の選択
entst=1 dow理論

*control_DOW

ダウ理論に基づく条件判定