BTC: 703,260円 / ETH: 22,585円 
投資エトセトラ

QuantX(クオンテックス)で学ぶシステムトレード|移動平均線を描く

QuantXで始めるシステムトレード講座

こんにちは、エンジェル投資家のびずぷらです。

「QuantXで始めるシステムトレード講座」の第二回目です。

人工知能のプログラミング言語で有名なPythonシステムトレードを行うためのテクニカル指標を勉強する講座です!

今回の講座で学べることは、

  • Smart Trade社のQuantXの基本的なプログラム構造を理解する
  • 移動平均線を理解する

ちなみにQuantXはクオンテックスと読みます。

びずぷら
びずぷら
前回はとりあえず動かしました。今回は内容に踏み込みます。前回の講座を見てない方は↓
あわせて読みたい
QuantXで始めるシステムトレード講座 移動平均線を表示
QuantXで始めるシステムトレード講座こんにちは、エンジェルプログラマーのびずぷらです! この記事はSmart Trade社のサービス QuantX[クオンテックス] ...

移動平均線を書いてみる(前回の復習)

前回の講座「QuantXで始めるシステムトレード講座」では、Smart Trade(スマートトレード)社のQuantXを使って「移動平均線」を表示するプログラムを動かすことに成功しました。

はなえる
はなえる
おめでとうございます!

前回動かしたプログラムはこちらです。

 

この記事では、このプログラムと移動平均線の解説をします!

プログラムはイヤって人は、移動平均線までスキップしてください。

移動平均線のプログラムを理解しよう!

プログラムが苦手な人、Pythonははじめてなんだけどという方は、10秒で始められる講座「Aidemy」でPythonの無料講座を受けるのがオススメです。無料です。

Aidemy 「プログラミング初心者でも大丈夫『Python入門』コース」

 

本気で勉強するなら有料コースもあります。

QuantXの大きな構造に着目

まず最初に細かいプログラムに入る前に、構造を理解しましょう。

QuantXのプログラムは大きな2つの構造に分かれます。

1. 初期化の領域

1-1. 銘柄選択、利用データ定義

1-2. 売買シグナル生成

2. 売買取引アクション

QuantXの構造

 

この図は前回とは違います。気がついた方もいるでしょうが、前回は、2の売買取引アクションについては記載を省略しています。

正確には1-2の売買シグナルも作ってはいません。また後で解説します。

初期化の領域

初期化はプログラム実行で一度だけ呼ばれます。

ここで対象の銘柄の過去データを抽出して、売買シグナル(どの銘柄を売るか・買うか)を生成するロジックを書きます。

頑張れば人口知能プログラムで売り買いを判断する、なんてことが書けるようになるはずです。

つまり売買シグナル生成が、QuantXのアルゴリズムの最重要部分になります!

びずぷら
びずぷら
実際のサンプルプログラムを使って解説します

銘柄選択、利用データ定義

最初に銘柄選択や利用データの定義をします。

前回のサンプルでは、日経平均連動ETF、イオン、トヨタの3つの銘柄を選択しています。また利用データとして終値と終値(株式分割調整後) の2つを利用できるよう定義しています。

 

ここは、なんとなくわかりますよね。試しにお好きな銘柄に変えて見るのも面白いと思います。

プログラムの初心者はわからない記載がたくさん出て戸惑うかもしれません。でもそこは「おまじない」と思って、わからないなりに進むのがよいです。

プログラムなんて最初はそんなものです。

はなえる
はなえる
まずは止まらず先に進みましょう

売買シグナル生成

一番の重要ポイントの売買シグナル生成。

ですが、前回のサンプルではチョー手抜きをして、実際はシグナル作ってません。

ごめんなさい。

移動平均線を3本。5日、25日、75日の3つを作っています。

 

def mysignalのところは関数の定義です。

dataは3次元の配列になっています。今回のdataには下記がセットされます。

  • データ項目:終値、終値(株式分割調整後)
  • 日付:2017.1.1〜2017.4.22(テスト実行時の条件)
  • 銘柄(日経平均連動ETF、イオン、トヨタ)

データ格納イメージとしては

2017.1.4

終値終値(調整後)
日経平均連動ETF20080.020080.0
トヨタ7097.07097.0
イオン1684.01684.0

 

2017.1.5

終値終値(調整後)
日経平均連動ETF20020.020020.0
トヨタ7049.07049.0
イオン1698.51698.5

 

ちなみにdataはpandas.Panelオブジェクトです。

 

pandas(パンダス)とは、Python用のデータ解析支援ライブラリです。

2次元・3次元配列のデータ解析が楽になります。pandasでは、下記のようなオブジェクトがあります。2次元のデータフレームは今後よく出てきます。

  • 1次元: Series
  • 2次元:DataFrame
  • 3次元:Panel

 

この部分では以下のイメージで移動平均線のデータを計算しています。

  • dataから終値を抽出
  • fillnaで欠損データを補完(おまじない)
  • rollingで5日分をさかのぼりながら、
  • meanで平均をとる

 

これだけの計算が一行でできるというのが画期的ですね。pandasを使ったことないと、ループを回して・・・とか考えそうなところです

m05の値は2次元配列(DataFrame)になりますので、結果のデータセットは下記のイメージです。

5日分をさかのぼって平均をとるため、1月11日からデータが取れます。それ以前のデータはNanとなります。

ETFトヨタイオン
2017-01-04NaNNaNNaN
2017-01-05NaNNaNNaN
2017-01-06NaNNaNNaN
2017-01-10NaNNaNNaN
2017-01-1119946.07039.61693.8
2017-01-1219858.07022.21700.8

 

 

最後にリターンで移動平均を返すことで、グラフに表示されるようになります。

今回のプログラム的な解説は以上です。お疲れ様でした。

CodeCamp

移動平均線とゴールデンクロス・デッドクロス

プログラムと一緒に今回のテクニカル指標についても学びましょう!

移動平均線とは

ある一定期間の終値の平均値をグラフにしたもの

移動平均線はトレンドを見るのに使われます。特に長期の移動平均線の動きで、株価の長期トレンド(上昇傾向、下降傾向)がつかめます。

移動平均の期間は、5日・25日・75日の平均をとるのが一般的です

 

買いのゴールデンクロスと売りのデッドクロス

異なる期間の移動平均線がクロスする箇所を見ることで、売り・買いのタイミングがわかります。

売りのシグナル:ゴールデンクロス

短期の移動平均線が、長期の移動平均線を、下から上に突き抜ける

 

買いのシグナル:デッドクロス

短期の移動平均線が、長期の移動平均線を、上から下に突き抜ける

びずぷら
びずぷら
有名な指標なので多くの投資家が参考にしています。

一般的な移動平均線は5・25・75日と説明しました。この一般的な流れに乗るのが良いのか、違う期間がよいかは、様々な議論があります。

参考にする人が多いメジャーな指標を選ぶ方が、その通りに株価が動く可能性が高いという発想、それに先んじで投資するため別の指標が必要という発想の二つです。

まとめ

ステップ

今回は、Smart Tradeを使って以下のことを学びました。

  • QuantXの基本構造
  • pandasのデータ型
  • 移動平均線
  • ゴールデンクロスとデッドクロス

まだ初歩の初歩でシステムトレードにはかなり遠い道のりです。が、初めての人にはお腹いっぱいな内容かもしれません。

ですが、一歩一歩進むしかないので、頑張りましょう!

あわせて読みたい
QuantX(クオンテックス)で学ぶ日経平均とETF投資
QuantX(クオンテックス)で学ぶ日経平均とETF投資こんにちは、エンジェル投資家のびずぷらです。 「日経平均とは何か?」と聞かれたら答えられますか? 当たり前のように毎日のニュ...
ABOUT ME
びずぷら
びずぷら
エメラダでエンジェル投資をはじめました。まだまだマイナーな投資方法ですが、ニッポンのために盛り上げていきたいと思います! 本家のサイトでは思考力・行動力・マネジメントについて本気で書いています。
プロの投資家へ相乗り投資 エメラダ・エクイティ

エンジェル
エンジェル投資を始めるなら、エメラダ・エクイティが絶対おすすめ。14万円から開始できます。

きっと、あなたの応援したくなるベンチャーが見つかるはず。さあ、熱量のある投資を始めよう!

今すぐ始める

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です