見出し画像

とりあえず調査

プログラミングっぽい仕事をするようになって「調査」っていう言葉がテレビや研究機関だけじゃなくて自分にも身近な言葉になった。

わからないことは調べる、わからなくても調べたら分かるだろうと思うようになった。なにか作業の時間を頭の中でぼんやり計算するときも調査が作業工程に入るようにもなった。とにもかくにもわからないままでは何も動けない。

今回は自動取引をするために何をする必要があるのかを大きく分けて以下の4つに分けた

・前提
・必要技術
・開発環境
・実行環境

前提の確認

取引の対象は仮想通貨(暗号資産)のビットコイン(BTC)とアメリカドル(USD)のペア。取引所は FXGT 。これは友人のトレード環境。

FXGTはAPIを公開していないので、MT5で(Expert Advisor)を動作させる必要がある。MT5でEAを作る場合 MQL5 で作る必要がある。

最初はPythonなどの一般的なプログラミング言語を使って作成したボットをVPSなどで動かそうと思っていたが、FXGTではAPIが公開されていないのでそれを断念した。別の取引所の板などの外部の情報を使った指標を作る場合はそちらのほうが自由度が高いと考えていたが諦めた。

指標として別の取引所の取引を参考にするという条件も付きそうだが、それは優先度を下げて考える。

まとめると
・BTC/USD のペアの自動取引を行う
・取引所はFXGT
・FXGTはAPIを公開していない
・FXGTはMT5で取引することができる。
・MT5ではMQL5 で作られたEAを動かすことができる

必要技術

MT5上で動くEAを作るために必要な技術はMQL5という言語。使ったことないので苦手意識が強い。

//+------------------------------------------------------------------+
//|                                          True Strength Index.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+ #property  copyright "2009, MetaQuotes Software Corp." #property  link      "https://www.mql5.com" #property  version   "1.00" #property  indicator_separate_window #property  indicator_buffers 1 #property  indicator_plots   1
//---- plot TSI #property  indicator_label1  "TSI" #property  indicator_type1   DRAW_LINE #property  indicator_color1  Blue #property  indicator_style1  STYLE_SOLID #property  indicator_width1  1
//--- input parameters
input int      r=25;
input int      s=13;
//--- indicator buffers
double         TSIBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
 {
//--- indicator buffers mapping
  SetIndexBuffer(0,TSIBuffer,INDICATOR_DATA);
//---
  return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
               const int prev_calculated,
               const datetime& time[],
               const double& open[],
               const double& high[],
               const double& low[],
               const double& close[],
               const long& tick_volume[],
               const long& volume[],
               const int& spread[])
 {
//---
//--- return value of prev_calculated for next call
  return(rates_total);
 }
//+------------------------------------------------------------------+

こんな感じの言語。基本的にはC言語ライクな雰囲気はある。VSCodeにもプラグインはあったのでVSCodeで書こうかと考えている。

開発環境

OSはWindowsが望ましい。MT5がmacOS上ではうまく動作しないため、macOSだとブラウザ版しかなかった。

ブラウザ版だと書いたコードを直接実行できる機能は見当たらなかったので、一度マーケットに公開してから実行する必要がある。

自分は MacBook Pro しか持ってないので、中でWindows10を起動して開発していこうと思う。

デモ口座はFXGTのものを使って進める。

実行環境

実行環境はまだ未定。基本的にはどこかでサーバを借りてEAを動作させるつもり。さくらサーバかお名前.comを使っている記事を見つけたので、開発が進んでいった後に検討する。

次は

次からはインジケータを作って見るところから始める。速くもやる気がどんどん下がっているので、コメントやいいねでやる気を回復させてほしい。

この記事が気に入ったらサポートをしてみませんか?