MENU
  • FX必要証拠金計算ツール(ハイレバ対応)
  • CFD必要証拠金計算ツール(XM専用)
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
FX取引に関するあれこれ
  • FX必要証拠金計算ツール(ハイレバ対応)
  • CFD必要証拠金計算ツール(XM専用)
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
FX取引に関するあれこれ
  • FX必要証拠金計算ツール(ハイレバ対応)
  • CFD必要証拠金計算ツール(XM専用)
  • FX複利計算シミュレーター
  • 余力に応じたロット計算ツール
  • お問い合わせ
  1. ホーム
  2. インジケーター
  3. 【MT4インジケーター】水平線を自動描画する自作インジケーター

【MT4インジケーター】水平線を自動描画する自作インジケーター

2021 7/21
インジケーター
2020年6月18日2021年7月21日

水平線を自動描画するシンプルなインジケーターを作ってみました。

入力パラメータは次の通りです。

  • RangePeriod
    RangePeriodは対象とする範囲を整数で指定。
  • TimerSec
    タイマー起動間隔(秒)

TimerSecは秒間隔で起動させるパラメータで、0にするとティック毎に再計算します。
1を設定すると1秒間隔、60を設定すると60秒間隔で再計算します。

一画面に収まる範囲のRangePeriodを設定するなりして調整しながら使ってください。

インジケーターの時間軸変更やパラメータ変更などで再処理し、インジケーター削除時には水平線オブジェクトが削除されます。

コピペ&コンパイルして貰うだけで使えます。

[php] //+——————————————————————+ //| AutoHorizonLine.mq4 | //| Copyright 2020, Greeds Co., Ltd. | //| https://greeds.net/ | //+——————————————————————+ #property copyright "Copyright 2020, Greeds Co., Ltd." #property link "https://greeds.net/" #property version "1.00" #property strict #property indicator_chart_window //パラメータ input int RangePeriod = 100; input int TimerSec = 60; //定数 const string OBJ_UPPER = "HorizonLineUpper"; const string OBJ_LOWER = "HorizonLineLower"; //変数 double PriceMax=DBL_MIN; double PriceMin=DBL_MAX; //+——————————————————————+ //| ロード処理 //+——————————————————————+ int OnInit() { ObjectDelete(0,OBJ_UPPER); ObjectDelete(0,OBJ_UPPER); if(TimerSec>0) EventSetTimer(TimerSec); HorizonLineProcess(); return(INIT_SUCCEEDED); } //+——————————————————————+ //| アンロード処理 //+——————————————————————+ void OnDeinit(const int reason) { ObjectDelete(0,OBJ_UPPER); ObjectDelete(0,OBJ_UPPER); } //+——————————————————————+ //| ティック処理 //+——————————————————————+ 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[]) { if(TimerSec>0) return(rates_total); Print("OnCalc"); HorizonLineProcess(); return(rates_total); } //+——————————————————————+ //| タイマー処理 //+——————————————————————+ void OnTimer() { Print("OnTimer"); HorizonLineProcess(); } //+——————————————————————+ //| イベント処理 //+——————————————————————+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { } //+——————————————————————+ //| 水平線ロジック //+——————————————————————+ void HorizonLineProcess() { for(int i=0;i<RangePeriod;i++) { if(PriceMax<High[i]) { PriceMax=High[i]; if(ObjectFind(OBJ_UPPER)<0) HorizonLineCreate(OBJ_UPPER,PriceMax); HorizonLineMove(OBJ_UPPER,i,PriceMax); } if(PriceMin>Low[i]) { PriceMin=Low[i]; if(ObjectFind(OBJ_LOWER)<0) HorizonLineCreate(OBJ_LOWER,PriceMin); HorizonLineMove(OBJ_LOWER,i,PriceMin); } } } void HorizonLineCreate(string name, double price) { //Print("Create"); ObjectCreate(0,name,OBJ_HLINE,0,0,price); } void HorizonLineMove(string name, int index, double price) { //Print("Move"); ObjectMove(name,0,Time[index],price); } [/php]
インジケーター
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 【MT4インジケーター】標準偏差チャネルを自動で引くインジケーター
  • 【MT4インジケーター】ダウ理論の基本原則2「トレンドには3種類ある」を確認するMTFZigZag

この記事を書いた人

たかはしのアバター たかはし

FX取引に関するあれこれVER2.0の管理人たかはしです。
ギャンブルに近い無謀なトレードを繰り返して損失を膨らませてきた元ハイレバトレーダーです。
レバレッジは使い方次第で大きな武器となる可能性を信じ、今までとは違う戦略的なトレードで生まれ変わろうとしています。

関連記事

  • 【MT4マルチタイムフレーム】WPR(MTF-WPR)
    2023年4月22日
  • 【MT4マルチタイムフレーム】ストキャスティクス(MTF-Stochastic)
    2023年4月22日
  • 【MT4マルチタイムフレーム】標準偏差(MTF-StdDev)
    2023年4月22日
  • 【MT4マルチタイムフレーム】RVI(MTF-RVI)
    2023年4月22日
  • 【MT4マルチタイムフレーム】パラボリックSAR(MTF-ParabolicSAR)
    2023年4月22日
  • 【MT4マルチタイムフレーム】オンバランスボリューム(MTF-OBV)
    2023年4月22日
  • 【MT4マルチタイムフレーム】MoneyFlowIndex(MTF-MoneyFlowIndex)
    2023年4月22日
  • 【MT4マルチタイムフレーム】モメンタム(MTF-Momentum)
    2023年4月22日
新着記事
  • ダウンロードしたMT4インジケータをマルチタイムフレーム化する方法
    2023年4月23日
    MQL
人気記事
カテゴリー
  • FX初心者向け (2)
  • MQL (4)
  • XM (8)
  • お知らせ (6)
  • インジケーター (38)
  • ツール (2)
  • テクニカル分析方法 (1)
  • 市況 (10)
  • 手法 (4)
  • 環境認識 (3)
  • 運用ルール (1)
スポンサーリンク
目次

© FX取引に関するあれこれ.

目次