恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

MT5/MQL5

MT5でボリンジャーバンドの幅を調べるスクリプト

ボラティリティが無いとトレードしづらいので、トレード前にボリンジャーバンド(以下「BB」)の様子を見ています。しかし、手作業で主要通貨ペアのチャートを見るのは手間です。 そこで、BBの幅をエキスパートに出力するスクリプトを書いてみました。 なお…

MT5のインディケーターが出力する値に関する疑問

この誤差は何? EAの中で平均足を計算するコードを作成し、動作チェックを行いました。具体的には、EAで計算した平均足の値と、MT5のHeiken_Ashiインディケーターがデータウィンドウに表示した値を比較しました。 (備考)MT5においては、Heikin_Ashiではな…

MT5でspreadを取得する際の注意点

MT5でspreadの値を取得する方法はいくつかありますが、以下の記事によると、取得する方法によって値が異なる場合があるようです。 https://fmdsm.blog.fc2.com/blog-entry-94.html 上記記事の内容から「MqlRates.spread」「iSpread()」「spread[]」を使って…

MQL5のArrayReverse関数

MQL5のヘルプを眺めていたらArrayReverseという関数が目に留まりました。使ったことがなかったので、以下のコードで動作確認をしてみました。 void OnStart() { int hoge[4] = {3, 5, 7, 9}; for(int i = 0; i < 4; i++) printf("hoge[%d] = %d", i, hoge[i]…

MT5のストップレベル(StopLevel)とは何か?

ストップレベル(StopLevel)とは? MT5でバックテスト中、注文に失敗しました。「TRADE_RETCODE_INVALID_STOPS」というリターンコードが返ってきており、原因はストップレベル違反でした。 ストップレベル違反とは「TP(利確価格)やSL(損切価格)を指定す…

[MQL5]MT5で上位足の移動平均線を表示する

MT4からMT5へ移行して以降、MTFの移動平均線(以下「MA」)を使っていませんでしたが、5分足チャートや15分足チャートを見ている時に「1時間足のMAも表示されている方が便利だな」と思ったので、上位足のMAを表示するインディケーターを、MQL5の練習を兼ねて…

VimでMQL5をコンパイルする

参考にした記事 この記事では、下記リンクの記事に記載されているPowerShellスクリプトを使わせていただいています。 How to Code & Compile MQL5 in Visual Studio - A Complete Guide - Other - 13 July 2018 - Traders' Blogs この記事を書いた理由 基本…

[MQL5]MT5からLINEに通知を送信する

昨年MT4用に書いたコードをMT5で試してみたところ、LINEへの通知はできているものの、エキスパートに「6 leaked strings left」と表示されていることに気がつきました。 ネット情報によると、これはメモリリークを示唆する文言のようです。この表示が毎回出…

[MQL5]TradingView風味の操作でMT5に四角形を描画してみる

TradingView風味にできないかしら? トレードにはMT5を使っていますが、チャート分析ではTradingViewを使うことが多いので、MT5のチャートにオブジェクト(四角形、トレンドライン、水平線など)を配置する時、 TradingViewと同じような操作感にできないもの…

[MQL5]OnInit関数の戻り値がINIT_FAILEDの時にインディケーターをチャートから除去する

MT4では、チャートにインディケーターを挿入しても、OnInit関数の戻り値がINIT_FAILEDの場合は、インディケーターがチャートにセットされずに除去されていた気がします。しかし、MT5ではそういう風にならないようです。 MT5で、わざとおかしな初期値を指定し…

[MQL5] MQL5/Filesディレクトリにあるものの一覧を表示する関数

「MQL5/Files」ディレクトリにある不要なファイルを削除するために、当該ディレクトリにあるファイルやディレクトリを一覧したいなと思いました。 そこで以下の関数を用意したのですが、再び使うことがありそうなので、ブログ上に残しておくことにしました。…

[MQL5]MT5のチャートに表示されている通貨ペアを切り替えやすくする

インジ作成の背景 トレードをしていると、個別通貨(JPY、EUR、AUD等)の状況を確認したい場面がしばしばあります。このため、次のようにしている人をちらほら見かけます。 ・小さなウィンドウを沢山配置して各通貨ペアのチャートを表示 ・モニターを複数枚…

[MQL5]買いラインの表示・非表示を切り替える手間を減らしたい・・・

インジ作成の背景 MT5でトレードする時に買いライン(Ask価格を表すライン)を表示させることがあるのですが、そのたびに (1)チャート上で右クリック (2)プロパティを開く (3)「表示」タブの中にある『買いラインを表示』を選択 という風にして、買…

[MQL5]CopyBuffer関数に登場するバッファ番号とは?

インジケーターを作成する場合などに使うCopyBufferという関数には、引数の1つとして buffer_num(バッファ番号)というものがあります。 CopyBufferの書式の1つを引用すると int CopyBuffer( int indicator_handle, // indicator handle int buffer_num, //…

[MQL5]指定した日時がサマータイム期間かどうか調べる関数

指定した日時がサマータイム期間かどうか調べる関数を、昨年、このブログにMQL4で書きました。それを部分的に修正してMT5に移植したものが、この記事に登場するコードです。 関数の使用例 MQL4版との違いは、第3引数が無くなったことくらいで、それ以外の使…

[MQL5]終値とTick Volume(たんなる余談です)

AXIORYのサイトを見たら2021年5月14日付けでMT5対応の口座がリリースされていたので、MQL5を触ってみることにしました。 ■終値の違い 手始めにMAを表示させたみたのですが、MT4とMT5で値が違っていました。 この時表示したのは、GBPUSDの日足のMA(SMA、期間…