株の自動売買を自作する方法。システムトレードで損益を改善できる!

システムトレード
くまさん
くまさん

株で自動売買したいけど、自作ってどうやるの?

うしくん
うしくん

自動売買は儲かるのか教えて!

この記事では、このような疑問にお答えします。

 

・自動売買に必要な環境について
・自動売買対応の証券会社を紹介
・自作支援ツールを紹介
・売買シグナルの作り方
・自動売買で儲ける方法
・補足・・・自作しないで自動売買する方法

 

自動売買の自作は、なんだか物凄く難しそうに思われるかもしれません。

しかし、最低限のプログラミングスキルがあれば、自作支援ツールを使うことで、割と簡単に自作が可能です。

「自分には自作なんて無理・・・」なんてあきらめる必要はないのです。

当記事ではプログラミング初心者、未経験者でもご理解いただけるよう、丁寧に解説します。

 

マンモス
マンモス

はじめまして、マンモスです。
投資歴15年、システムトレードを自作していた経験があります。
その経験を活かし、株の自動売買を自作する方法について解説します。

 

株の自動売買を自作する方法

株の自動売買を自作するには、プログラミングスキルと自動売買対応の証券口座が必要です。

また、自作支援ツールを使うことで、効率的に自動売買ツールを作ることができます。

当サイトでは、上記のように自動売買の自作をするにあたり、自作支援ツールの利用をおすすめします。

自動売買ツールは、自作支援ツールを使わず全てをプログラミングして自作することも可能ですが、それでも自作支援ツールを推奨する理由は下記です。

 

・証券会社提供のツールを介して、信頼性、安全性のあるデータのやり取りをする。
・APIを使用した、リアルタイム情報の取得。
・完全な自作ツールを使用して証券会社にアクセスする場合、利用規約に反する恐れがある。
・発注、口座情報照会などの機能が用意されており、その部分はプログラミング不要。

 

APIとは?
ソフトやアプリの機能をプログラミングによって活用できる仕組みのことです
プログラマーはAPIを通して、ソフトやアプリに処理命令をだすことができます。

 

マンモス
マンモス

つまり、アプリ上でボタンをぽちぽちしなくても、プログラムだけで処理が可能になります。
これで様々な処理を自動化でき、自作ツールとアプリの機能を連携させることができます。
もちろん、自動売買も可能!

 

※APIを使った取引のイメージ図

APIのイメージ

出典:auカブコム証券

 

以上のように、証券会社との信頼性があるデータのやり取りと開発効率化のために、証券会社が提供する自作支援ツールの使用を推奨します。

 

それでは、自作に必要な各項目について詳しく解説していきます。

 

※システムトレードについて基礎から学びたい人向けに、おすすめの本を紹介しています。

 

自動売買の自作に必須の環境を準備する

株の自動売買を自作するために必須の環境は、下記の3点です。

 

①証券会社の口座情報を照会できること。
②プログラム上から発注できる機能があること。
③リアルタイム情報の取得ができること。

 

まずはじめに、株の自動売買をするにあたり、証券会社の口座情報を取得できることは必須です。

 

くまさん
くまさん

口座内にいくらお金があるか分からないと、株買えないもんね・・・

 

 

次に、リアルタイムでプログラム上から発注できる機能も必須です。

これがないと、自動売買できないです。

 

最後にリアルタイム情報の取得ができることです。

ただし、リアルタイム情報の取得は売買戦略によっては不要です。

というのも、デイトレードではリアルタイム情報の取得は必須でも、「終値で売買シグナルがでたことを確認して、翌日の寄り付きで成り行き注文する」といった場合、リアルタイム情報は必ずしも必要ではありません。

 

上記で解説した3点ですが、自作支援ツールに全ての機能が含まれるため、自動売買環境を構築することは簡単です。

 

自動売買に対応する証券会社の口座開設をする

株の自動売買を自作支援ツールによって実現する場合、証券会社は以下の2択になります。

 

①auカブコム証券
②岡三オンライン証券

 

ほんとはもっと紹介できればよいのですが、株の自動売買はFXに比べて、ほぼ選択肢がありません。

 

マンモス
マンモス

FXの場合、数多くの選択肢がありますが、株はまだまだシステムトレード環境が整っていないのが実情です。

 

自作支援ツールを利用する

株の自動売買に使用できる自作支援ツールは以下の2つです。

 

①kabuステーションAPI → auカブコム証券提供
②岡三RSS       → 岡三オンライン証券提供

 

kabuステーションAPIの特徴

・REST形式のAPIにより、自動売買の実現が可能
・プログラミング言語はなんでもOK
・料金が格安→月980円、無料条件あり

 

※詳しくは下記記事で解説しています。

 

 

岡三RSSの特徴

・Excelの機能拡張ツールのため、Excelベースで自動売買が可能
・Excelで専用の関数、アドインツールが使用可能
・VBAで自動売買マクロも組める
・料金は5093円/35日、無料条件あり

 

※詳しくは下記記事で解説しています。

 

すでにプログラミング言語が使える人は、kabuステーションAPIの利用をおすすめします。

こちらはAPI接続を利用して自動売買することになります。

 

プログラミング未経験者は岡三RSSがおすすめです。

こちらはExcelの機能拡張ツールです。

関数やVBAを駆使して、Excelベースの自動売買ツールを自作できます。

 

VBAとは?
Excelやマイクロソフトオフィス製品の機能拡張や処理自動化ができるプログミング言語です。
他の言語に比べると、めちゃくちゃ簡単。

 

 

売買シグナルを作成する

株の自動売買をするにあたり、どのタイミングで買って、どのタイミングで売るかという売買シグナル(売買ルール)を作る必要があります。

自動売買は、この売買シグナルが発生したタイミングで、口座情報の照会と発注処理を組み合わせることになります。

口座情報照会、発注処理にかんしては、上述した自作支援ツールの機能(関数)を使うため、これらの処理をゼロから作る必要はありません。

 

それでは、実際の売買シグナル作成の例を紹介します。

※Excelで解説します。(プログラミングの場合でも、記述方法が違うだけでやることは一緒です。)

 

まずはどのような売買ルールかを決める

今回は、以下のようなブレイクアウトを利用した対照型の売買ルールでシグナルを出します。

※対照型の売買ルールとは、買いと売りのルールが逆のことです。

非対称型の売買ルールは、買い売りで全く別の売買ルールになります。

 

買い→20日間の高値(終値ベース)をブレイクアウトしたら、翌日の寄り付きで成り行き買い

 

売り→20日間の安値(終値ベース)をブレイクアウトしたら、翌日の寄り付きで成り行き売り

 

ブレイクアウトとは?
レンジ相場の高値を上抜くことです。
ブレイクアウト戦略は伝説的トレーダー集団「タートルズ」が使用していたことで有名。

 

 

時系列データを準備する

株価の時系列データは自作支援ツールで簡単に取得することができます。

それ以外にも様々な方法で取得が可能です。

※基本的にはツールの機能で取得して問題ありませんが、必要なデータがツールの機能で取得できない場合、別の方法が必要になります。

 

 

売買シグナルを出す

売買シグナルを出すにあたり、時系列データで必要な値を算出します。

今回の売買ルールは、

 

買い→20日間の高値(終値ベース)をブレイクアウトしたら、翌日の寄り付きで成り行き買い

 

売り→20日間の安値(終値ベース)をブレイクアウトしたら、翌日の寄り付きで成り行き売り

 

となっています。

 

シグナルを出すために必要な始値、高値、安値、終値の4本値は、自作支援ツールで簡単に取得できます。

しかし、今回の売買シグナルに必要な過去20日間の高値/安値は自分で算出する必要があります。

 

Excel関数を使えば以下のようになります。

高値の算出

=MAX(範囲)・・・範囲には算出に必要な分のデータ(セル範囲)を入力

安値の算出

=MIN(範囲)・・・範囲には算出に必要な分のデータ(セル範囲)を入力

 

今回は20日間の高値/安値のため、範囲には終値(E列)の20セル分を入力します。

それをそれぞれF列、G列に算出させます。

売買シグナルの例

 

次に、買いのシグナルをだす条件式を組み立てます。

条件式はIF関数を使います。

 

IF関数は論理式に対して、真の場合と偽の場合の値を出すことができる。
=IF(論理式,真の場合,偽の場合)

 

買いシグナルは、「当日終値(E列) > 20日間高値(F列)」となり、シグナルが発生した場合は「買い」の文字がH列に入力されます。

※ 例 =IF(E156 > F156,”買い”,””)

条件を満たせば「買い」の文字が入り、満たさない場合は空欄のままにしている。

 

また、売りの場合、この逆のことをします。

 

ものすごく簡単な例ですが、以上が売買シグナルをだすメカニズムです。

実際に自動売買する場合、このシグナルに資金管理条件や発注処理を組み合わせます。

つまり、売買シグナル自体は上記のような簡単なExcel関数で出し、口座情報や発注処理は自作支援ツールの関数やAPIを利用します。

 

今回はExcelで説明しましたが、プログラミングでも基本的にやることは一緒です。

マンモス
マンモス
今回はExcelで例示しただけで、必ずしもExcelを使う必要はありません。
全部プログラミングでもOKです。
ただし、プログラミング未経験者ならExcelが簡単です。

 

また、リアルタイム情報で売買シグナルを出したいのであれば、リアルタイムの株価を取得し、それに対して売買条件が発生していないかの式を組めばいいだけです。

リアルタイム情報の取得は、自作支援ツールの機能で簡単にできます。

この機能を使えば、デイトレード用の自動売買ツールが作れたりもします。

 

株の自動売買を自作して儲ける方法

株の自動売買だけ自作しても、儲けることは難しいです。

自動売買で儲けるには、必ずバックテストする必要があります。

 

バックテストとは?
過去の価格データにたいする売買シュミレーションです。
自動売買の前にどの程度利益があるかシュミレーションすることで、あからさまな地雷の回避に役立ちます。

 

 

”自動売買だけ”では儲けられない理由

・”売買戦略”そのものが利益を生むものでなければいけない。
・「自動売買」はあくまで「注文処理の自動化」であり、それ自体が利益を生むかは不明。

 

※システムトレードで儲けられない理由の1つは、バックテストしないで自動売買することです。
以下の記事で詳しく解説しています。

 

儲かるかは自動売買を始める前に決まる

自動売買とは、あくまで「注文処理の自動化」にすぎません。

注文が自動化されているかどうかは、直接の利益とあまり関係ありません。

 

マンモス
マンモス

注文処理を自動化しておけば、ヒューマンエラーを減らす、メンタル起因の失敗を防ぎやすい、というメリットはあります。
しかし、利益を生むために重要なのははあくまでも、”売買戦略”です。

 

売買戦略が優秀かどうかは、バックテストすることで判断できます。

ちなみに、バックテストは前述した売買シグナルを過去のデータに適用し、損益などを計算させているだけです。

売買シグナルさえ作ることができれば、自動売買だけでなく、バックテストもできます。

 

バックテストが一番重要

バックテストで売買ルールをしっかしり分析し、儲かると確信できる売買ルールで自動売買をしましょう。

このように「バックテスト」と「機械的な注文処理」を組み合わせたのがシステムトレードと呼ばれる投資手法です。

 

マンモス
マンモス

「機械的な注文処理」とは、必ずしもプログラムで自動化する必要はありません。

鋼の意思で売買ルールに従って、通常注文でも問題ないです。

 

 

補足① 自作しないで自動売買する方法

自作が難しいという場合、自作支援ツールでなく、「自動売買ツール」の使用をおすすめします。

こちらの場合、プログラミングの必要はなく、アプリ上で売買ルールの開発と自動売買ができます。

詳しくは関連記事にて解説しています。

 

※自動売買のみしたい場合は、以下の記事を参照

 

※バックテスト、自動売買をアプリでしたい人は以下の記事を参照

 

補足② バックテストする方法

バックテストは自作するか、アプリを使うことでできます。

詳しくは関連記事にて解説しています。

 

※バックテストの自作方法。VBAを基礎から覚えられる解説記事です。

 

 

※バックテストに特化したツール「イザナミ」について

 

※バックテスト、自動売買、両方できる「iTRADE」について

 

まとめ

株の自動売買を自作するポイントは、以下の点です。

①証券会社が提供する自作支援ツールを使う
②売買シグナルの作り方を覚える
③儲けるためには、バックテストもする

 

プログラミングの基礎さえできれば、意外にも簡単に自動売買ができます。

この機会にぜひ自動売買してみてはいかがでしょうか?

 

タイトルとURLをコピーしました