見出し画像

チュートリアルやってみる(4)

いよいよチュートリアルを一つやってしまうという目標も今回で一旦終わりにしたい。今回も前回と同じチュートリアルをやる。チュートリアルの完成品を写しつつ、気になったことや分からなかったことをメモして理解を深めていく。

変数名

変数名は snake_case が一般的みたい。イベントハンドラの変数名 PascalCase なのはどういうことなんや?とは思うけど、変えられないところはそのままで行く。

The names of variables (including function parameters) and data members are all lowercase, with underscores between words. Data members of classes (but not structs) additionally have trailing underscores. For instance: a_local_variable, a_struct_data_member, a_class_data_member_.

CPositionInfo.PositionType

戻り値は ENUM_POSITION_TYPE

・POSITION_TYPE_BUY
・POSITION_TYPE_SELL

の二つがある。

iMA

int  iMA(
 string              symbol,            // 銘柄名
 ENUM_TIMEFRAMES      period,            // 期間
 int                  ma_period,        // 平均期間
 int                  ma_shift,          // 水平シフト
 ENUM_MA_METHOD      ma_method,        // 平滑化の種類
 ENUM_APPLIED_PRICE   applied_price      // 価格の種類かハンドル
);

ENUM_MA_METHOD

画像2

ENUM_APPLIED_PRICE

画像1

グローバル変数について

symbol, timeframe, volume をグローバル変数で定義しよてたら、ライブラリと衝突して警告がよく出た。

今後、自分で実装するときにスコープを変更するか変数名を変えるかしたい。

コンパイルが通った

コンパイルが通ったコードは以下の通り。もとのコードより書き方を変えた。上で変数名の問題が見つかったように、自分の感覚で書いた場合どんな問題が見つかるかを知りたかったのがあった。

過去のデータでテストをする

チュートリアル内では過去のデータを用いてテストをしている。MT5には過去の価格推移のデータを使用して作ったEAをテストすることができるみたい。

EURUSDでテスト

今年の頭からのデータで取引をした。すでにダウンロードされているデータがそうだった。

画像3

画像4

10000 で始まったのが、10254.73になっているから、102%ぐらいになった。

画像5

別の取引所のデータだからかもしれないけど、同じペアで動かしたときの結果。

画像10

BTCUSDでテストする

まずはテストするためのデータを探す。

画像6

BTCUSDの一時間足をダウンロードできたのかな?これをどうやって選んでテストするのかを調べる。

ちょっと調べたけど、それっぽいのがなかったので、上のやり方でヒストリカルデータってのがダウンロードできている前提でソースコードを書き換えた。

int OnInit()
 {
  c_symbol    = "BTCUSD";
  c_timeframe = PERIOD_CURRENT;
  c_volume    = 0.1;

シンボルのところをハードコーディングして指定。テストの仕方については次回ちゃんと調べようと思う。

画像7

結果は、同じ資金で始めたので負けてる。当たり前やけど、同じロジックで同じ期間でも銘柄が違ったらそれで勝ち負けが分かれる。

資金の推移は以下の通り

画像9

まとめ

まともなロジックを持ったEAを作ることができて、開発環境上でトレードを実際にやってみれた。

今後の課題としては写すのではなくて、自分でなにかしらのロジックを見つけてそれをコードに落とし込む作業とそれぞれを適切にテストし、さらにVPSなどでどうさせる方法を身に着けること。

HTTPRequestを呼べたり、SQLiteをいじれたりするからちょっと変わったEAも作れたらいいなと思ってる。

ぽんぽんさんおすすめのロジック

ぽんぽんさんに「逆張りナンピン」を勧められたからこれ実装するのも一つの目標にしようと思ってる。

画像8



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