- 2019年10月25日
- 2019年11月6日
1本の足で1回だけ仕掛ける機能 最終版…ではなかった
Volume[0]を使うだけで良かった良くなかった ※2019/11/6追記コメントで指摘いただいた件、2019/11/5 16時~2019/11/6 3時(サーバ時間)の約半日かけてTradeviewのILCデモサーバーでEURUSDの1分足を調査 […]
Volume[0]を使うだけで良かった良くなかった ※2019/11/6追記コメントで指摘いただいた件、2019/11/5 16時~2019/11/6 3時(サーバ時間)の約半日かけてTradeviewのILCデモサーバーでEURUSDの1分足を調査 […]
チャートに表示する時に使う トレードに直接関係ありませんが、何らかの数値(例えば現在保有中のポジションの合計損益額)を3桁のカンマ区切りでチャートに表示したい時に使える関数をご紹介します。 MQL5の公式フォーラムに同じ悩みを方がいらっしゃっていて、 […]
OrderClose関数に標準装備されていました 分割決済の方法の中でMT4には分割決済の仕組みがないと書きましたが、普通にありました…。 ごめんなさい。私が完全に間違っておりました。 なぜこんな盛大な誤解をしていたかはもはや思い出せません。 Ord […]
1回は必ず処理が実行される特徴を使う プログラミングしていると、ある処理の後は特定の後続処理は行わせたくない時があります。 その時は処理をスキップさせる仕組みを考えるわけですが、スキップさせる方法としてはif文やreturnが一般的かと思います。 し […]
直近の決済ポジションがSLだったらとかに有効 EAを作っていると、直近の決済ポジションがSLだったらこうしてほしいみたいなケースが時々あります。 決済ポジションの状態を参照するには、OrdersTotal関数ではなくOrdersHistoryTota […]
IndicatorDigits関数を使えばよい MT4のデータウィンドウをご存じでしょうか? こんなやつです。 各足における四本値やカスタムインジケーターの値が表示されて大変便利なのですが、カスタムインジケーターのデフォルト表示は4桁になっています。 […]
MS系フォントの英字は全角、スペースは半角が正解 MT4では、ラベルやテキストをチャートにペタペタ貼り付けることができます。 その際、フォントを指定するのですが、1つ罠にハマったので、備忘録がてら共有します。 結論から言うと、「MS P明朝」や「MS […]
たかが拡張子、されど拡張子 MQL4で書かれたソースプログラムには「.mq4」という拡張子がついています。 パソコンの初期状態では、この拡張子は表示されない設定になっています。 つまり、「Moving Average.mq4」は「Moving Ave […]
MQLファイルのエディター探しの旅、完結 メタエディターを試してみたり、VSCodeを試してみたりと右往左往していましたが、結局、一周回って秀丸に落ち着きました。 そもそも秀丸以外のMQLエディターを探していた最大の理由は「コンパイル結果を標準出力で […]
実際に躓いた点をご紹介 Visual Studio Code (VSCode) は良いエディターかもで、VSCodeをご紹介しました。 VSCodeの導入にあたって、躓いた所が3つありました。それを備忘録がてら共有します。設定ファイルの内容はまた別の […]
エディターはEA作成の必須ツール これまで私はMQL4プログラミングのエディターとして、純正のメタエディターか秀丸を使ってきました。 当然のことながら、純正のメタエディターが最もMQL4プログラミングには適しているのですが、操作性がいまいちなんですよ […]
TimeGMTOffsetはGMTとローカルPCの時差 MT4の標準関数にTimeDaylightSavings、TimeGMTOffsetという2つの関数が存在します。 関数名だけで内容を判断すると、サーバとローカルPCの時差を簡単に計算できるのか […]
変更箇所はたったの2行 トレイリングストップ関数とブレイクイーブン関数はどちらも自作ライブラリに包含されていますが、両方を併用するとトレイリングストップが打ち消されて、ブレイクイーブンが常に適用されてしまう問題があることが分かりました。 トレイリング […]
メンテナンスは面倒だけど、自由度は高い テキストファイルの読み込み方の応用編です。 エントリーを回避したい経済指標を列記したテキストファイルを事前に用意しておき、その情報をもとに経済指標発表前後のエントリーを回避するプログラムをご紹介します。 関数だ […]
セクションとキーから値を取得する テキストファイルの読み込み方で、テキストファイルを読み込むする方法を説明しましたが、今回はiniファイルの読み込み方法について説明します。 iniファイルは設定ファイルとして使われます。EAやインジケーターのパラメー […]
1行ずつ読み込んで処理していく EAやインジケーターで何らかのテキストファイルを使いたい時のために、テキストファイルの読み込み方のサンプルをご紹介します。 MT4標準関数を使う場合、テキストファイルは/MQL4/Filesまたは/MQL4/teste […]
NormalizeDouble関数を活用すべし double型の計算誤差のお話です。 2/3を計算すると0.666…となりますが、どこかで見切りをつけなければなりません。無限には持てませんから。 その見切りが計算誤差となります。 double型の場合 […]
ありそうでないヒゲの計算 たまにヒゲの長さと実体の長さを仕掛けや手仕舞いの条件に使うことがあります。 ヒゲってベーシックなものだと思うのですが、残念ながらMT4の標準関数にはヒゲの長さを求める関数はありません。 今まで都度計算していたのですが、今後の […]
ご希望の声が多いなら開催します 「MQL4プログラミングセミナー」の開催を検討しております。 セミナー対象者はMT4で自作EAを作りたい人です。 セミナー内容はMQL4プログラミングです。MQL4プログラミングの基礎から入り、自分で考えたトレード戦略 […]
通貨ペアや時間足の変更でOnInit関数は都度呼び出される 仕掛け時間帯指定機能と仕掛け時間帯指定機能に指定時刻での強制決済機能を足してみたに不具合があることに今更気づきました。 結論から言えば、gEntryTimeFlgTrueCntというグローバ […]
どちらもバックテストで設定した期間の日時を返す タイトルと見出しで言いたいことは言い尽くしてしまっていますが、意外と気づいていない方もいるかなと思い、記事にしてみました。 TimeLocal関数はローカルPCの日時(通常は現在の日本時間)を返し、Ti […]
OnDeinit関数はEAを削除した時だけに呼ばれるもの? 未だに凡ミスする1つにOnDeinit関数の呼び出しタイミングがあります。 OnDeinit関数はEAを削除した時に呼ばれるものだ!って、ついつい思ってしまうんですね。 でも違います。 On […]
変換しないというかできません 「.ex4ファイルを.mq4ファイルには変換してほしい」と依頼されることがたまにあります。 しかし、全て断っています。 .ex4ファイルを.mq4ファイルに変換する行為は、リバースエンジニアリングと言いますが、これは違法 […]
プログラムなのに画面表示設定に影響を受けるとかあり得ない 前回のトレードが勝ったとか負けたとかとかでプログラムの動きを変えることが時々あります。 そんな時に使うのがOrderSelect(*, *, MODE_HISTORY)です。 これを使うことで […]
metaeditor.exeはNGだけどmql64.exeならOK メタエディターを使ってMQL4のプログラムを作成している方が多いと思います。 メタエディターも良いのですが、「矩形選択できない」、「検索・置換が使いづらい」という2つの理由で私は秀丸 […]
簡単そうだけど、ちょっとした工夫が必要 決済したローソク足では仕掛けない機能をご紹介します。方法は色々ありそうですが、口座履歴は参照しない方法で作りました。 ポジションに設定したSLないしTPで決済した場合を想定しています。OrderCloseを使っ […]
64文字以上だと認識しない ObjectCreate関数でオブジェクトを作成したのにオブジェクトが表示されない事象に遭遇しました。 「文法は間違ってないのに何でだろう?」と頭を悩ませていたのですが、オーダーコメントに長さ制限があったことを思い出し、「 […]
足生成時ではなく足形成中に仕掛けるには 1本の足で1回だけ仕掛ける機能および1本の足で1回だけ仕掛ける機能 改善版の記事にて、1本の足で1回だけ仕掛ける機能をご紹介しました。 これらはいずれも足生成時(足確定時)の瞬間に仕掛けたい時に使うものでした。 […]
32文字以上だと消えてしまう OrderSend関数のパラメータの1つにオーダーコメントがあります。 オーダーコメントはその名の通り、各オーダーに対してコメントを付与できる機能です。 コメント以外の用途にも使えて結構便利なのですが、このオーダーコメン […]