2021年3月16日火曜日

MQL4のスケルトンコード読み方基本まとめ

概要

MQL4をプログラミングするためには、MQL4プログラム新規作成時に自動生成されるスケルトンコードを理解しておく必要がある為、読み方をメモしておきます。


MQL4プログラム新規作成方法

スケルトンコード云々の前に、そもそもMQL4プログラムを新規作成する必要があります。こちらについてはこちらに纏めましたので御覧ください。


MQL4のスケルトンコード

上記にてMQL4ファイルを新規作成すると以下のようなスケルトンコードが生成されます。
//+------------------------------------------------------------------+
//|                                                         hoge.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

が、これが何を意味しているかを理解しなければこの後実装を進める事が出来ないです。。。そこで、プログラムを眺めてみると以下3つの関数が記載されており、これらの中身を実装すればOKになっている事が分かるかと思います。
①int OnInit()
②void OnDeinit(const int reason)
③void OnTick()

各関数の位置付け

①int OnInit()

これは、プログラムを起動した直後に1回だけ実行される関数です。
JavaやC#等のコンストラクタに近いものになります。

②void OnDeinit(const int reason)

これは、①とは逆にプログラムを終了する直前に1回だけ実行される関数です。
個人的にはまだあまり必要性はピンと来ていませんが、おそらくJavaやC#で言うところのfinally句に記載するような事を書くのかなと思います。

③void OnTick()

これは、イベントが発生(画面上で何かしら操作が成された時)した際に呼び出される関数です。
なので、本関数に、ボタンを押される等のイベントを検知したらどんな動作をさせたい・・・といった事を記述する領域になります。


ロジックの具体的な記述方法は後程という事にさせて頂きつつ、MQL4全体の構成としては上記のとおりになります。


本日はここまでで。

FX自動トレード_2021年2月実績

 

 概要

2021年2月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年2月結果

2021年2月の実績は、実利利益額:\89,449、実績利益率は2.83%でした。

今月は比較的ボラもあり、ある程度の結果を得ることが出来ました。久しぶりに過去の平均利益率を上回っております。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので0.33%ショートという結果になりました。本日までの実績平均利益率/月は2.75%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。2月終了時点で2023年8月時点の預託証拠金にまで到達する事が出来ました。 


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。

今月は予実比較で微勝でした。来月以降もこの調子で利益を積み重ねられればとうれしいです。

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...