【無料】EnoughOrderPanel【MT4】【注文ツール】

目的・動作

MT4用のオーダーパネル、注文ツール、発注ツール、決済ツール、エントリー支援ツール等と呼ばれるトレードサポートツールです。
攻守のバランスが取れた質の高い取引を実現する」ため、これだけあれば十分だと思える機能だけを詰め込みました。
【保存版】FXにおける資金管理・リスク管理・ロット管理のすべて」で書いた資金管理の考え方をもとに、「1度の取引で総資金の2~5%」のリスクを取ることを前提としたサポートツールです。

主な機能は「ワンクリック注文」、ポジションを構築したときに、「建値」、複数注文時の「平均建値」、また「自動建値設定」、「自動トレール設定」ができます。
エントリー時のリスクを考慮した「自動ロット管理機能」や「分割エントリー機能」、「ハイレバ支援モード」を備えています。
面倒な計算をすることはなく、「自動的」に「資金管理」をすることを一番の目的として考えております。

v1.61以降からはおまけ機能として省略していた「アラート機能」や各種「分析支援機能」など、便利な機能も追加しております。

以前に作成しようとしていたオーダーパネルが「多機能すぎて完成が遠い」ために作成しました。
また、AverageBreakEvenの正当進化系です。
全自動建値設定のAutoBreakEvenの機能を実装するかは検討中です。

更新状況について

細かい修正などで更新の都合上ファイル配置が手間になるため、常に最新である保証ができませんのでご了承ください。

※試用期限が切れている場合や、機能自体が古い場合がありますのでご了承ください。
現在最新版については都度Discordにてリリースしております。
今後手間を減らせるのであればgithubなどでの配布も検討中です。

合わせまして解説も最新との仕様が違う場合がありますのでご留意ください。

更新情報

  • 2023/3/15 v1.68 アラート微修正等。
  • 2023/1/2 v1.67 反転アラートや操作感など変更等。
  • 2022/12/1 v1.66 認証にバグがあったみたいなので、修正。

解説動画

大変多機能となりましたため、解説動画についても徐々に充実させていきたいです。

おまけ機能編

機能解説

建値設定機能

Aボタン

平均建値を入れる機能です。
エントリー時に表示される赤色、青色ラインにslを設定します。

Eボタン

通常の建値機能です。
エントリー位置より設定値で指定した値幅だけ離して建値を設定します。

Cボタン

建値設定を一括でキャンセルします。

※それぞれボタンがポジション方向に分かれておらず一つのため、機能として利用はできますが両建ては推奨しておりません。

Rボタン

tp、slラインを初期位置にリセットします。
損益表示(pips表示)をリセットします(v1.02より追加)

自動建値設定機能

設定項目から自動建値設定をオンにすることで指定の値幅(pips)を超えた際に自動的に建値の設定がされます。(v1.06)

v1.50より建値をそれぞれの建値値か、平均建値か選択するオプションが追加されております。

v.1.62からはトレンド判定による設定や、閾値の自動調整機能が追加されております。

トレーリングストップ設定機能

v1.28より追加

設定項目に応じたトレールを設定します。

ATRに味付けをした計算がされています。

自動トレーリングストップ設定機能

トレーリングストップ設定を「true」にすることで、建値より有利な位置にあるばあいは自動的にトレール設定が入るようになります。

トレーリングストップ設定値

トレーリングストップ利用時間軸から設定します。

表示数値は分単位です。

(例)60=1H、240=4H、1440=1Dと換算されています。

実際に設定されるラインはトレールライン表示の設定で確認できます。

目安はスキャル~デイは60以下、数日スイングは240、数週スイングは1440以上です。

ポジションクローズ機能

Pボタン

一括で予約注文の取り消しを行います。

Hボタン

一括で全てのポジションの半分ロットをクローズします。

Allボタン

一括で全てのポジションを利確・予約の取り消しをします。
設定項目から確認画面のオンオフが設定できます。(v1.06)

自動ロット管理機能

赤色ボタン

ロットを自動決定し、売り注文をします。枠内表示は自動計算されたロット数が表示されます。

青色ボタン

ロットを自動決定し、買い注文をします。枠内表示は自動計算されたロット数が表示されます。

slライン(デフォルトではピンク表示)を移動すると設定したリスク割合のロット数を自動的に決定します。

またこの機能を利用してエントリーする場合に限り、自動的にslが入ります。

リスクを固定したトレードが可能になります。

TPボタン

注文時に自動的にtpを設定します。
エントリー位置とsl位置から、設定パネルで設定したリスクリワードのtp位置を自動で決定(黄緑ライン)します。
設定により、手動tp、機能オフも可能です。(v1.02より追加)
ついつい攻めすぎてしまう人用にハイブリッドTPモード追加(v1.08より追加)

  • 自動モード
    sl位置からリスクリワードを計算し自動的にtpの位置を設定します。
  • 手動モード
    自分の設定した緑ラインの位置にtpを設定します。
  • ハイブリッドモード
    半分のロットは自動的に設定、もう半分のロットは自分で設定。
SLボタン

利用者様のご要望により実装された機能です。
slの設定値を通常手動で移動しますが、自動で設定値幅通りに動かすことが可能です。
一部EOPの変動ロット機能が活かせない場合がございますためご了承ください。

リスク割合切り替え機能

あらかじめ設定したリスク割合に合わせて切り替わります。

左のMが成行時のリスク割合、右のSが分割時のリスク割合。

ハイレバ支援モード

v.1.18より追加

海外口座とゼロカットを最大限に活かした資金効率最高のトレードを支援します。
※本機能はギャンブルトレードを推奨するものではありません。

sl位置のタイミングで「強制ロスカット」になるロット調整を行います。
(スプレッドやスリッページ分のズレが発生する場合があります)
面倒な計算は不要で最大限に資金効率を上げたトレードをすることが可能です。

基本的には「1口座につき1ポジション」、「1度のslで口座残高が0」を前提とした利用方法を想定しています。

必要な金額だけ入金」して利用することを想定しているため、追加口座への口座残高の移動等をすることで「必ず資金管理を実施」してください。
※必要な金額とは一度に晒すリスクとして「総資金の2~5%程度」の金額を推奨しております。
また、機能を理解してリスクを許容できる方のみご利用ください。
こちらの機能を最大限に活かすためにはGemforexXMTradingの様にレバレッジが高い取引所での利用を推奨しております。

※1 多くの取引所ではゼロカットを利用した「複数業者間での両建てや、複数口座間での両建ては悪質な禁止行為」となっているためご注意ください。

※2 レバレッジが低い口座でのエントリーやsl位置が極端に近いエントリーなど、最大レバレッジを超えるロット数に調整される場合注文ができません。ロット数制限をかけてしまうと資金効率が下がり機能の意図と合わないため注文可能なロット数への調整はしておりません。利用口座の変更や自分の納得できるsl位置に移動して再度エントリーしてください。

分割エントリー機能

MSボタン(Market-Split) v1.32より

成行エントリー時にsl側に向けて ロットを自動決定し、分割で指値注文をします。

LSボタン(Limit-Split)

ロットを自動決定し、分割で指値注文をします。
ボタンがオンになっている際にエントリーライン(デフォルトでは黄色)が表示されます。
slラインとの間に設定した分割数、自動計算されたロット数でのエントリーをします。

Splitボタンを押下したまま注文ボタンを押すとエントリー位置(水色ライン)が表示されます。

エントリー位置が表示されたまま注文ボタンを押すと自動決定されたロット数で指値が配置されます。

アラート機能

v1.61から追加

キーボード操作A

アラート設定ラインを表示します。

キーボード操作S

アラートラインにアラートを設定します。

キーボード操作H

アラート設定はそのままに、ラインを隠します。
隠れている場合は表示します。
※現状チャート切替時は再表示されます。

キーボード操作D

アラート設定を削除します。

損益表示機能

某コントローラーの様に損益を表示することができます。

ポジション履歴機能

取引終了後の検証や振り返りのため、チャート上に数値を表示してポジションの履歴が表示できます。

【おまけ機能】フィボナッチ支援機能

v1.62から追加

前身のMultiFunctionPanelで実装した機能だが、煩雑すぎてなかったことにした蛇足機能。
簡単にフィボナッチを引くことができます。

キーボード操作R

フィボナッチリトレースメント作成用の操作ラインを表示します。
左右のラインの高安を基準にフィボナッチを設定します。
また、表示されている場合は隠します。

キーボード操作E

フィボナッチエクスパンション作成用の操作ラインを表示します。
左右のラインの高安を基準にフィボナッチを設定します。
また、表示されている場合は隠します。

キーボード操作V

v1.63以降

N値、E値を表示します。
表示されている場合は隠す。

キーボード操作C

フィボナッチエクスパンション作成時にチャネルを表示する。
表示されている場合は隠す。

キーボード操作T

フィボナッチリトレースメントの高安の範囲内にフィボナッチエクスパンションの値が存在する場合、一番近いリトレースメントのとエクスパンションの値にゾーンを表示します。

キーボード操作Q

フィボナッチ関連のオブジェクトを削除します。

【おまけのおまけ】エリオット波動表示機能

v 1.63以降

楽しくなって実装しちゃっただけで、これだけみてると基本的にはやられます。

キーボード操作W
キーボード操作3

3波確定位置を決めるラインの表示。
クリック操作も可能。

キーボード操作4

4波確定位置を決めるラインの表示。
クリック操作も可能。(クリック操作については4波優先)

オブジェクト表示関連

キーボード操作P

操作パネルを隠します。

隠れている場合は表示します。

※現状チャート切替時は再表示されます。

キーボード操作L

SL,TPのラインを隠します。

隠れている場合は表示します。

※現状チャート切替時は再表示されます。

免責事項・注意事項

免責事項

  • 本ツールはトレーダーの快適なトレードができるようサポートすることを目的としています。作者環境での実用テストはしておりますが、不具合等予期せぬ動作がをする可能性があります。
  • 利用した際の不利益・不都合等一切の責任は負えませんので、ご自身の判断の元ご利用ください。
  • また、ハイレバ支援モードが存在しますが、ギャンブルトレードを推奨するものではありません。あくまで資金管理をした上で適切なリスク管理の元利用する様お願いいたします。

注意事項

  • 現在はXMTrading(スタンダード口座)、Titanfx(ゼロ口座)、Gemforexのゴールド、小数点3桁、5桁通貨ペアのみで動作確認。
  • 操作上エラーが表示されない場合でも、マイナス位置のsl等矛盾が生じる場合は操作がうまくいかない場合があります。
  • ロット数計算について
    →最低ロット数以下の場合は0.01、最高ロット数以上の場合は50と設定されます。
  • より良いものを作ろうと目指してはおりますが、予告なしで機能の変更、追加や廃止が変更が発生する可能性があります。
  • 現在評価版として試用期限以外についてはフル機能を提供しておりますが、今後評価版の廃止、機能制限などが発生する可能性が考えられます。
  • 無料で開設頂ける指定リンクからの口座開設、利用申請をしていただくことで一切の機能制限がのないものを利用できます。合わせてご検討ください。

対象となる口座は下記のリンクからの口座開設後、Twitter、DiscordのDMなどで連絡をいただければ確認後にライセンスキーを送ります。
XMTradingTitanfxGemforex

ダウンロード方法

現在評価版の配布をしております。
こちらが更新されていない場合、Discordにて最新のものは配布しております。

バージョン:v 162
更新日:2022/11/19
試用期限:2022/12/1

要望や不具合についてはこの記事のコメント欄か、Discordまでご連絡いただけると幸いです。

既知の不具合・仕様・今後更新検討一覧

既知の不具合・仕様

  • 表示されるライン等が操作パネルに被る。→再描画すると処理が遅くなるため仕様として考えています。
  • ゴールドのみpips計算が10倍になる→現状仕様です修正予定。
  • 閉じたポジションが消えない、損益表示が重なる。→現在仕様ですのでRボタンを押すと再描画し直して治ります。
  • 為替通貨ペア以外については桁のずれや操作上の不具合がある可能性があります。(桁がずれる、slラインの初期位置がおかしい等)後々対応予定です。
  • 環境依存等でのレイアウト崩れ?
  • 口座を切り替えた際にエラーが出る、計算がおかしくなる→初期化をするため再度EAの読み込みが必要。
  • 分割エントリー時の挙動。
  • ハイレバ分割エントリー時のロット数。

今後更新検討一覧

優先度A(利便性向上・不具合修正)

  • A1 MT5対応
  • A2 トレーリングストップ(マジックナンバーで適用先を半分だけに)
  • A2 分割エントリー挙動確認
  • A2 ハイブリッドモード時のtpラインの挙動確認
  • A3 強制ロスカットライン表示
  • A3 各種口座・CFD・仮想通貨への対応
  • A3 取引通貨をまたいだ通貨管理

優先度B(機能強化)

  • B1 通常の指値
  • B2 ラベル削除でのポジションクローズ

優先度C(オプション・検討)

  • C1 パネルの表示方法変更
  • C1 tp、slの数値入力
  • C1 レバレッジ最大ロット数制限or警告

対応済

  • マイクロ口座対応(XM)
  • ロット数等桁ずれ

バージョン履歴・更新情報

  • 2022/11/30 v1.65 履歴機能修正、エリオット波動表示機能確定位置機能追加
  • 2022/11/22 v1.64 エリオット波動表示機能修正
  • 2022/11/22 v1.63 アラート機能バグ修正など
  • 2022/11/19 v1.62 フィボナッチ支援機能、パネル、ライン非表示機能追加。
  • 2022/11/18 v1.61 建値設定閾値の自動調整機能追加。アラート追加前に相当いじってたのですが、リリースせずにアラート追加したため忘れました。恐らく色々改善されています。
  • 2022/10/27 v1.60 リスク変更ボタンを追加エントリーラインのバグ修正その他細かい修正などここ2個くらいのバージョンで表示や初期値など変更してる可能性があるのでご注意ください。リスク機能だけ簡単に解説左のMが成行時、右のSが分割時のリスク%それぞれのリスク割合設定値の下に候補入れる設定欄があるので、そこにカンマ区切りで入れた数値がボタンを押すごとに切り替わります。ロット数に変化あるので動作は行けてると思いますが、分割の方は試していないです。
  • 2022/10/27 v1.59 自動建値ダウとトレンド判定のバグ取り(まだテスト)リスク割合の小数点対応面倒だったのでひとまずマイクロ自動判定も付けました
  • 2022/10/18 v1.58 自動建値ダウ更新対応(テスト)トレンド判定機能追加(機能利用時にEOPHLIndicatorをIndicatorフォルダ配下においておかないと恐らくエラー出ます)
  • 2022/10/13 v1.57 ゴールドのバグ?(XM)対応、認証方式微修正
  • 2022/10/7 v1.56 SL、TPにライン名を表示
  • 2022/10/3 v1.55 認証方法変更検討措置
  • 2022/9/3 v1.54 一部GUI配置換え、slモード切替ボタン実装
  • 2022/9/2 v1.53 トレールマジックナンバー設定解放、sl自動モード実装
  • 2022/8/27 v1.52 自動平均建値時の不要なリトライを防止する条件を追加(未テスト)
  • 2022/8/27 v1.51 自動平均建値時の最低ライン実装(未テスト)
  • 2022/8/27 v1.50 自動建値タイプ変更オプション実装
  • 2022/8/25 v1.49 トレール時の設定値解放
  • 2022/8/24 v1.48 半利機能が動作していなかったため、修正
  • 2022/8/3 v1.47 1か月飛んでるのに今気づいた・・・
  • 2022/6/2 v1.45 いろいろいじった気がするのですが、正確に把握できてないので試用期限の更新ということで。。。
  • 2022/5/14 v1.44 試用期限更新、諸々修正、バグが存在してるので直そうとしていて時間がかかりました。 修正しきれてないのでもし何かおかしいなと気になったら念のためツールを読み込み直してください。
  • 2022/4/22 v1.43 諸々修正、トレーリングストップの方式見直し、伴いインジケーターも。
  • 2022/4/21 v1.42 左パネル利用時バグ修正、通貨ペア切り替え時にロット数などがずれるバグの修正。 自分的に迷宮入りしてたところが解決できてすっきり!
  • 2022/4/18 v1.41 パネルレイアウトの修正、表示倍率変更機能(左パネルで利用するとバグあり)
  • 2022/4/16 v1.40 桁数処理変更、MarketSplit注文バグ修正
  • 2022/4/5 v1.39 試用期限更新(そのうちボタンレイアウトとか直します)
  • 2022/3/7 v1.38 試用期限更新
  • 2022/2/8 v1.37 軽微な修正、Exness5桁対応(予定)
  • 2022/1/18 v1.36 試用期限の更新
  • 2021/12/11 v1.35 試用期限の更新 トレールデフォルト設定変更
  • 2021/11/11 v1.34 試用期限の更新
  • 2021/10/14 v1.33 分割成行オンオフボタンの追加【MS】 伴って分割指値のボタン名称変更【LS】
  • 2021/10/12 v1.32 ①トレールのアルゴリズムの更新 ②成行注文時の分割エントリーオプション追加(テスト版) 成行ポジションはリスク管理設定の割合、指値については分割エントリーリスク管理設定の割合になります。 成行エントリー時にslラインまでの間【分割数-1】の指値をsl位置から割り出したリスク割合のロット数で配置してくれます 恐らく世界初wの機能w その他諸々の更新
  • 2021/10/01 v1.31 期限の更新、その他軽微な修正
  • 2021/09/16 v1.30 ハイブリッドエントリー時TP設定の適正化
  • 2021/09/13 v1.29 手動トレーリングストップ用ボタンの実装
  • 2021/09/08 v1.28 バグ修正
  • 2021/09/06 v1.27 おせっかいトレーリングストップの試用版
  • 2021/09/01 v1.26 試用期限の更新
  • 2021/08/02 v1.25 ハイレバ設定時の分割エントリーロット数の改善
  • 2021/08/01 v1.24 MT5対応に向けた更新、試用期限の更新
  • 2021/07/14 v1.23 1pipの値幅表示オプション化
  • 2021/07/09 v1.22 ロット表示の安定化
  • 2021/07/07 v1.21 小数点切り捨て暫定対応
  • 2021/07/06 v1.20 パネルの左側表示暫定対応
  • 2021/07/06 v1.19 軽微な修正
  • 2021/07/02 v1.18 フルレバ支援モードの実装
  • 2021/06/26 v1.17 修正に伴い発生した注文処理(tp設定)の修正
  • 2021/06/26 v1.16 Rボタンの挙動を修正 
  • 2021/06/26 v1.15 軽微な修正、1pipの値幅を左上に暫定表示 
  • 2021/06/24 v1.14 軽微な修正、今後他取引所、等でも利用できるよう根本の処理に係る部分
  • 2021/06/22 v1.13 配色の変更、価格ラベルの表示オプション追加
  • 2021/06/22 v1.12 システム項目表示可否(時計、通貨ペア)、システムカラー設定(時計、通貨ペア)追加
  • 2021/06/21 v1.11 分割エントリー時のハイブリッドTP対応、軽微な修正
  • 2021/06/21 v1.10 マイクロ口座に暫定対応(XM)
  • 2021/06/21 v1.09 軽微な修正
  • 2021/06/19 v1.08 ハイブリッドTPモード追加
  • 2021/06/18 v1.07 自動建値設定バグ修正
  • 2021/06/18 v1.06 自動建値設定・確認画面設定
  • 2021/06/15 v1.05 軽微な修正
  • 2021/06/11 v1.04 ゴールドの設定値幅を修正
  • 2021/06/09 v1.03 手動TP設定の追加
  • 2021/06/09 v1.02 GUI等軽微な修正
  • 2021/06/05 v1.01 分割エントリーの追加
  • 2021/06/04 v1.00 β1

検証環境

全て円建て口座で行っております。

基本的には XMTrading の MT4 口座を対象として考えておりますツールになっておりますため、一部取引所では正常に動かない可能性などがありますため、ご了承いただけますと幸いです。

※簡単な確認はしておりますが、基本的にMicro口座の動作保証はしておりません。

取引所プラットフォーム口座種別株価指数貴金属原油FX通貨ペア
(小数点3桁、5桁)
仮想通貨
XMTradingMT4Standard×××
XMTradingMT5Standard ××××
TitanFXMT4Blade×××
GemforexMT4Standard××××
FXGTMT5Standard×××

○=検証済み
△=検証中/対応中/一部動作に問題ある可能性あり
×=未検証

【無料】AverageBreakEven(平均建値)【MT4】

目的・動作

トレードサポートツールです。

主な機能は複数ポジションでポジションを構築したときに、「平均建値」を「ワンクリック」で設定できます。

現在大がかりなオーダーパネルを作っているのですが、永遠にデモ版となりいつ気持ちよく動作できるかわからないため、必要な機能だけ抽出しました。

機能解説

建値設定機能

  • Aボタン
    平均建値を入れる機能です。
    売り、買いに対応していますが一つのボタンのため両建ては推奨しておりません。
  • Eボタン
    通常の建値機能です。
    エントリー位置より設定値で設定した値幅だけ離して建値を設定します。
  • Cボタン
    建値設定を一括でキャンセルします。

エントリー後デフォルトでショートの場合は赤色、ロングの場合は青色のラインが表示されるため、そのラインをショートの場合は下回る、ロングの場合は上回ってからボタンを押下してください。
特にエラー表示とかも出ないため、うまく動作しない場合は現在値と反対になっているかブローカーのストップレベル分(最低値幅)離れていないことが考えられます。

ポジションクローズ機能

  • HalfCloseボタン
    一括で全てのポジションを半分利確します。
    
  • AllCloseボタン
    一括で全てのポジションを利確・予約の取り消しをします。

損益表示機能

某コントローラーの様に損益を表示することができます。

為替FX以外については桁がずれている通貨ペアもあると思いますので目安として使ってください。
後々対応予定です。

自動ロット管理機能

slラインを移動すると設定したリスク割合のロット数を自動的に表示します。(パネルオーダーボタン利用時のみ)

赤枠が売りボタン、青枠が買いボタン、それぞれ中の数値がロット数になります。

またこの機能を利用してエントリーする場合に限り、自動的にslとtp(設定したリスクリワード比率の位置)が入ります。

リスクを固定したトレードが可能になります。

ダウンロード方法

現在テスト用としてDiscordにて配布しております。

【MT4】注文ツールを作成しようとしている話 その4~自動ロット管理・リスク管理~【mql4】

自動ロット管理・リスク管理機能

前回の続きの記事になります。


少し多忙でいまいち進捗が良くないため少し期間が空きました。

こちらに関しては声を大にして特筆する機能ではないと思っています。
標準的な2%ルール、5%ルールのような機能です。

エントリー時に合わせてsl設定位置をすることで最適なロットサイズを計算します。

大まかな処理

エントリー地点からsl位置までの値幅の損失が出た場合に、損失額が資金量の〇%になるように自動的にロットが調整されます。
資金管理についてはトレードの全体的に包括されるものであること、また自分が都度ロット計算をすることを手間に感じることから実装した機能になります

①Risk(%)欄にリスク割合を入力します。
②Risk(%)ボタンを押下します。(オンの場合はピンク色)
③画面に表示されている濃いピンク色のライン(sl)を移動します。
 ※この画面ですと成行注文になっていますが、もちろんほかの注文方法でも指値、逆指値でも利用できます。

処理としてはエントリー値、sl値の値幅に対して、資金量の指定したリスク割合のから適正ロットを割り出します。
イベント処理により、slラインやほかのラインを移動するごとに再計算しております。

特に珍しい処理でもないと思うので今回のコードについては割愛いたします。

テスター募集中

現在こちらの注文ツールについてテスターを募集しております。
開発中の物になるため、不具合等に理解がある方のみおねがいしております。

直接Discordに来ていただくか、下記のフォームにて応募ください。
連絡先としてメールアドレス、TwitterID、DiscordIDのいずれかは忘れずに入力をお願いいたします。

https://docs.google.com/forms/d/e/1FAIpQLSf37xfYB2WCgjnU9Z-8xrD3enY4Vt2pW6SmNnSbAPRB22lqzw/viewform?usp=sf_link

【自作システム】DailyBar・NY5pipストラテラジー解説編【EA】

どんなトレード手法なの?

成績公開をしたEAについての解説ページになります。

トレード手法1:確定日足に基づいた逆張りエントリー

結構前に作っていたものなのでサンプルがこれしかなかったんですが、単体通貨ペアでのバックテスト成績です。

ロジック

日足の確定を見てエントリーするだけのシンプルな手法になります。
基本的に損切はせず、プラスになるまでアベレージダウン(一定条件の元毎日損失を減らすためのエントリー)を繰り返します。

今現在の手法自体はとてもシンプルなため、考えられる戦略がハイリスク戦略とローリスク戦略です。

ローリスク戦略

損をしないことを優先にする。
損失(含み損)が出ている場合は2日目以降(2ポジション目以降)に平均建値を超えて手数料等考慮し1円でもプラスになったら決済。


ハイリスク戦略

利益が出ることを優先にする。
損失(含み損)が出ている場合でも当初の利確目標まで待つ。

問題点・改善点

こちらの手法は損切なしでひたすらにアベレージダウンを繰り返すため、事故が起きた場合中々大変なことになります。

実際に2021/2/24に強制ロスカットを食らっています。



そこで考えられる1つ目の決済方法がローリスク戦略として挙げた平均建値決済。

取引通貨ペア数が多いため全ポジションを1つのバスケットとして考えた場合にプラスになる瞬間は少なくないのでそこで決済する。

2つ目が口座の損失割合で強制的に決済をする。

ここの2つとも処理としては存在しているのですが、単体通貨ペアでの検証時は動作していたものの複数通貨ペア対応にしたところうまく動作していないようです。

またロット管理自体も1つの通貨ペアで取引をする前提のロット管理方法なので、同時にポジションを持ちすぎてしまうとすぐにオーバーフローしてしまいます。
そのためロット数を減らす(28通貨同時にポジションをとることは考えづらいため、1/14とかになるでしょうか)

トレード手法2:NY時間のみのスキャルピング

ロジック

NY時間にとある条件を満たした場合に逆指値エントリー。
もし逆指値に刺さらずにsl位置まで行くのならば注文をキャンセルします。

ローリスク戦略

損をしないことを優先にする。
5pipもしくは最低限のラインを超えた場合に即建値、半利。


ハイリスク戦略

利益が出ることを優先にする。
トレーリングストップを利用してslを上げていく。
その中でも固定数値でトレールするほうが確保する動きは早く、ATRでトレールするほうが動きは遅い。
動きが遅いほど利益になりやすいが、損失しやすい。

問題点・改善点

こちらの手法に関しては相場環境問わず使えるためエントリー方法、利確方法ともに優秀だと思われます。
現在考えられる改善手段はトレーリングストップの方法を検討するだけです。
元が値幅で利確設定だったものを現在はATR設定にして検証しています。

エントリーロジック(管理方法?)自体は優秀なために、トレールを固定値幅ではなくATR設定(または別の方法)にして利益を伸ばす方向を考えています。

今後の展望

大きく分けて3つやりたいことがあります。
完全多通貨ペア対応と複数ロジックの共存です。

多通貨ペア対応

参考までに複数通貨ペア対応にするメリットとしてはトレードチャートが1枚で済むため28枚分のチャートを用意しないでいいこと、また同時管理がしやすいことです。

デメリットとしては先に挙げた通り処理が複雑化すること(単体通貨ペアの処理とは違う)とMT4(mql4)自体が複数通貨ペアを考慮したつくりとなっていないため、バックテストができないことです。
そのためデモ口座として実際に動かしてテストしております。

複数ロジックの共存

今現在利用している2つのロジックはそれぞれ管理画面を持っていて別の方法で実行されています。
1つ目のロジックは完全に見るだけの管理画面、2つ目のロジックはエントリー対象通貨ペアを監視するような作りになっています。
エントリー対象の場合は別途チャートを開いてエントリーしています。
操作性が悪くなることと動きとして煩雑になることとあまりごちゃごちゃと同時にチャートを開きたくないため統合できればと思っています。

ロジックの追加

現在の物でも最大1日1回エントリーしかしない息の長いスイングと超短期を合わせた面白い組み合わせとなっていると思っているのですが、もう一つ違う時間軸でのエントリーもできると面白いと思っているものがあります。
そちらも単体ではほぼ準備ができているのですが、まだ検証中のため同時に利用をしておりません。

なんでも盛りたくなるのは悪い癖ですが、ちょっと検証中のグリッド系をもう一つ動かしていたりします。
こちらも利用できるようでしたらぜひ取り込んでしまいたいところです。

考えかたは前者のスイングに近いですが保有時間が最大半日程度のデイとなります。
組み合わせとしては面白いと思いませんか?

またUIがごちゃごちゃのため綺麗にまとめられたりしたら無料配布等もできれば面白いかもと思っています。

【自作システム】DailyBar・NY5pipストラテラジー成績公開【EA】

自作システム成績

主に28通貨ペアを対象にした2つのストラテラジーが動いています。
結論から言うと勝てていません、一時期は資金が2倍になったのですがバグにより想定の動きをせず一度強制ロスカットを食らっています。

※2021/4/5バグ修正

ロジック等については別記事で解説いたします。

widget

こちらのポジション一覧でslが入っているものが「NY5pipストラテジー」、tpが入っているものが「DailyBarストラテジー」、通貨ペアがEURUSDかつ何も入っていないものが現在検証中のものです。

© Powered by Myfxbook.com


ロジックの追加もしていて見栄えも良くないので安定稼働ができそうなことを確認したら近日仕切り直します!

【MT4】注文ツールを作成しようとしている話 その3~特殊注文・戻成行・戻指値①~【mql4】

戻成行・戻指値とは

前回の続きの記事になります。

聞いたことのない注文方法だなと思った方はお察しの通り、「完全オリジナルの注文方法」になります。
長年実現したいと思っていた注文方法の一つです。

一言でいうと「目標とするラインをタッチしたときに注文を執行」します。
通常の指値や逆指値と変わらないと思うかもしれませんが、どこが違うのかというと、タッチしただけではなく「タッチ後に〇本以内に戻る」のならばという条件つきです。

少し名前にセンスがないので呼称に関してはもう少し検討中になります。

戻成行

分かりづらいのでもう少し戻り成行注文を掘り下げて説明すると
①現在USDJPYが99.8円です。
②100円で売りたいと思います。
③通常の指値の場合は100円にタッチしたらすぐにショート注文が約定されます。
④戻り成行の場合は100円にタッチした後に「5本以内に100円以下に戻るのならばショート注文」を約定させます。

上記の通り、この注文方法の構想は逆張り時のリスクを減らす注文方法となっております。
指値というものは絶対的に逆張りの注文となるため、指値をそのまま突き抜けてしまうといった事故が起こることが間々あります。
そのリスクを通常の指値注文よりも抑えるために実現したいと思っていた注文方法となります。

戻指値

同様に戻り指値注文に関してですが上記「④のタイミングで指値を配置する」ことができます。

例えば100円ラインをブレイクした際に99.2円まで戻るのならば場合買いたいと思っている場合、ブレイクラインを100円に設定、指値を99.2円に設定する。
この場合は順張りの注文となり、100円にタッチ後「5本以内に100円以下に戻るのならば99.2円に買い指値を配置」の様なよりリスクを抑えた通常ではできない様な注文方法を実現できます。
こちらは順張りの押し目買い、戻り売りをしたいときの注文方法になります。

実際の処理

世界中調べたわけではありませんがおそらく完全オリジナルな注文方法のため、テストしつつ実装している段階です。
現在の物は少し不都合があったため修正予定になりますが、Rボタンを押下すると戻成行用のエントリーラインをセットすることができます。

OnTickの中でエントリーラインと指定時間足の現在値を比較し、エントリーラインをCloseが超えた場合には買い注文フラグを立てます。
フラグが立っている状態で〇本以内にエントリーライン以下に戻るのを待ち戻った場合は注文を執行。
もしくは設定本数以上ローソク足が進んだ場合は期限切れキャンセルとなります。


もう一つの注文キャンセル方法としては、エントリー時に設定をしたslをエントリーラインを下回る前に超えた場合には注文キャンセルという処理を検討しております。
こちらについては現在実装前のため、構想のみです。


開発中のため変数設定もわかりづらいですがここで利用している「ReverseLimit」についてはローソク足の指定本数になります。

簡単にまとめると

①トリガーラインを超えたローソク足の時間を変数に入れる。

②ローソク足が進むごとに繰り返し、指定したローソクの本数を過ぎるまたはslを超えた場合に設定解除。

キャンセル処理に関しては最初の分岐点がオブジェクトの有無のため、オブジェクトの削除と注文方法のフラグのリセットだけになります。

   if(ObjectFind("reMarket") != EMPTY)
     {
      objrm = NormalizeDouble(ObjectGetDouble(0,"reMarket",OBJPROP_PRICE1),MarketInfo(Symbol(),MODE_DIGITS));
      if(High[1] < objrm && High[0] > objrm)
        {
         ReverseOrderFlag = -1;
         rm_time = iTime(Symbol(),5,0);
        }
      if(Low[1] > objrm && Low[0] < objrm)
        {
         ReverseOrderFlag = 1;
         rm_time = iTime(Symbol(),5,0);
        }
      rm_bars_shift = iBarShift(Symbol(),5,rm_time,true);
      if(ReverseLimit > rm_bars_shift && rm_bars_shift != -1 && rm_bars_shift != 0)
        {
         if(ReverseOrderFlag == -1)
           {
            for(int i = 1; i < ReverseLimit; i++)
              {
               if(Close[i] < objrm)
                 {
                  BtnOrderType = "Market";
                  lotSize = RoundDown(StringToDouble(ObjectGetString(0,"reMarkettext",OBJPROP_TEXT)),2);
                  OpenShortOrder();
                  ObjectDelete("reMarket");
                  ObjectDelete("reMarkettext");
                  ReverseOrderFlag = 0;
                 }
              }
           }
         else
            if(ReverseOrderFlag == 1)
              {
               for(int i = 1; i < ReverseLimit; i++)
                 {
                  if(Close[i] > objrm)
                    {
                     BtnOrderType = "Market";
                     lotSize = RoundDown(StringToDouble(ObjectGetString(0,"reMarkettext",OBJPROP_TEXT)),2);
                     OpenLongOrder();
                     ObjectDelete("reMarket");
                     ObjectDelete("reMarkettext");
                     ReverseOrderFlag = 0;
                    }
                 }
              }
        }
      else
         if(ReverseLimit <= rm_bars_shift)
           {
            ObjectDelete("reMarket");
            ObjectDelete("reMarkettext");
            ReverseOrderFlag = 0;
           }
     }

戻指値に関しても同様の処理となっていますが、同じ様に作成したため現在1本のラインがトリガーライン、エントリーラインを兼任しています。
当然ですが指値の場合はエントリーラインが執行時価格以上になるためエラーとなりますよね。
トリガーラインとエントリーラインを分けないといけないことを失念していたため、使いやすい様にGUI操作側での根本的な修正を検討しております。

今回のまとめ

言葉で説明するにはいまいち分かりづらい注文方法のため簡単に動画にまとめてお見せできないことが残念です。
私の中ではこれだけでも優位性があり面白い注文方法だと考えているため是非実装したく思っております。
もう少し仕様が煮詰まってきましたら再度解説と動画でお見せしてみたいと思います。
戻指値に関しては丸々処理の変更があると思いますので主に戻指値に関しての解説として検討しています。

それでは今回はこのあたりで終わります。

【MT4】注文ツールを作成しようとしている話 その1~機能整理・GUI~【mql4】

最初に計画しておきたいこと

前回の記事の続きになります。

今回は機能からGUIが生えてきました。

最初はGUIなんて作る予定もなく思い付きで作り始めたため、何をどこまで作り込むか全然計画を立てていなかったためとても苦労しました。

もしこの記事を見た後に作成する方は最初にざっくりでいいので「必要な機能の洗い出し」と「GUIの設計」をすることをお勧めします。

必要な機能の洗い出し

1度情報をするべくざっくり大枠でほしいと思った機能が以下の通り

  • 通常注文機能
  • 特殊注文機能(主にこれを作りたかった)
  • ポジション管理機能
  • ロット・リスク管理

機能の詳細はまた別記事で解説します。

GUIの設計・作成

Excelで設計図を作成

今回やらかした大きなことは作りながら考える、考えながら作る、あれもこれも作りたい・・・。

最初に形を考えずに欲しい機能欲しい機能と付けていったらあとから配置を変えるのが一苦労でした。

そのため一度スタートに戻って形から決めていきます。

いろんな描画ソフトで使いやすいものを試そうと思いましたが、調べたり覚えたり書いたりテストしたり全部自分でやっているためなかなか面倒です。

この時点で思った以上に大規模なプロジェクトになってまいりました。

そのため一番手軽に利用できそうなExcelをチョイス。

図形をセルに張り付く設定にして、ボタン類の配置を考えていきます。

またどのボタンがどのような挙動をするのかという洗い出しが必要になります。

オンオフトグルで切り替わるのか、押すと何かが変わるのか等・・・

理想でいうのならば「オブジェクトの種類」「変数名」「オブジェクトの挙動」「オブジェクトに与えられる機能」あたりも洗い出しておくと後々管理が楽でしょう。

実装してテストをしていくうちに使いやすい形が出てくると思うので最初はざっくり決めました。

GUIの作り方

大きく分けて通常のオブジェクトと標準ライブラリのDialogというものがあるようです。

もともと通常のオブジェクトとして作っていましたが、作り直しを考えている段階で標準機能としてGUIを作る事ができることに気づく。

試しに作ってみるが、慣れていないことと利用方法がイマイチ理解できず。

通常オブジェクトの場合は関数化して必要な値を与えることでボタン等が作成できるために工数が違いすぎる。

関数化できそうな事に気づくも構造体変数structの受け渡しが上手くできずに頓挫。

ネット上にもMT4でGUIを作るような資料は少なかったため後回しへ。

まだ全然理解できていませんがこのような感じで記述する必要がありそうです。

Create_LabelSymbolのほうが一般的にネット上で公開されている書式、Create_BtnTrapRepeatのほうが簡略化するために試行錯誤をしている形。

class CPanelDialog : public CAppDialog
  {
private:
  
   CLabel            m_LabelSymbol;
   CButton           m_BtnTrapRepeat; 

public:
                     CPanelDialog(void);
                    ~CPanelDialog(void);
   virtual bool      Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);

protected:
   bool              Create_LabelSymbol(void);
   bool              Create_BtnTrapRepeat(string name1, string name2, string text, double x1, double y1, double x2,double y2);
  };

bool CPanelDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
  {
   if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false);
   if( !Create_LabelSymbol())return (false);
      if(!Create_BtnTrapRepeat(
      "m_BtnTrapRepeat", "__BtnTrapRepeat", "Trap",
      indent_left,
      indent_top+full_height+controls_gap_y,
      indent_left+full_width,
      indent_top+full_height+controls_gap_y+full_height
   )) return(false);
   return(true);
  }

CPanelDialog AppWindow;

bool CPanelDialog::Create_LabelSymbol(void)
{
   int x1=indent_left;
   int y1=indent_top;
   int x2=x1+full_width;
   int y2=y1+full_height;
   
   if( !m_LabelSymbol.Create( m_chart_id, m_name + "m_LabelSymbol", m_subwin, x1, y1, x2, y2 ) ) return false;
   if( !m_LabelSymbol.Text( StringConcatenate(Symbol()," ",PERIOD_CURRENT)) ) return false;
   if( !Add( m_LabelSymbol ) ) return false;
   
   return true;
}

bool CPanelDialog::Create_BtnTrapRepeat(string name1, string name2, string text, double x1, double y1, double x2,double y2)
  {
   
   if(!m_BtnTrapRepeat.Create(0,name2,0,x1,y1,x2,y2)) return(false);
   if(!m_BtnTrapRepeat.Text(text)) return(false);
   if(!Add(m_BtnTrapRepeat)) return(false);

   return(true);
  }

これについては力技で並べていくか、記述する行数が違いすぎるためもう少し効率的なやり方が必要に思えます。

オブジェクト(ボタンやラベル)の作り方

苦労の末簡単な解決策はすぐに見つからなそうだったので、オブジェクトとして作成していくことに。

もともと途中まではオブジェクトで作成していったためつぎ足す形です。

最終的な配置については利用しながら使いやすさを考えていきます。

こういう感じで関数を作っておくとあとは必要な値を引数として渡すだけで作成ができます。

void CreateButton(string name, string label, int x, int y, int width, int height,
                  color bgColor = C'236,233,216', color textColor = clrBlack, int anchor = CORNER_RIGHT_UPPER)
  {
   ObjectCreate(name, OBJ_BUTTON, 0, 0, 0);
   ObjectSet(name,OBJPROP_XDISTANCE,x+width);
   ObjectSet(name,OBJPROP_YDISTANCE,y);
   ObjectSet(name,OBJPROP_WIDTH,x);
   ObjectSet(name,OBJPROP_XSIZE,width);
   ObjectSet(name,OBJPROP_YSIZE,height);
   ObjectSet(name, OBJPROP_CORNER, anchor);
   ObjectSet(name, OBJPROP_BGCOLOR, bgColor);
   ObjectSet(name, OBJPROP_COLOR, textColor);
   ObjectSet(name, OBJPROP_ZORDER, 100);
   ObjectSetText(name, label, FontSize);
  }

void CreateLabel(string name, string label, int x, int y, int width, int height,
                 color bgColor = C'236,233,216', color textColor = clrBlack, int anchor = CORNER_RIGHT_UPPER)
  {
   ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
   ObjectSet(name,OBJPROP_XDISTANCE,x+width);
   ObjectSet(name,OBJPROP_YDISTANCE,y);
   ObjectSet(name,OBJPROP_WIDTH,x);
   ObjectSet(name,OBJPROP_XSIZE,width);
   ObjectSet(name,OBJPROP_YSIZE,height);
   ObjectSet(name, OBJPROP_CORNER, anchor);
   ObjectSet(name, OBJPROP_BGCOLOR, bgColor);
   ObjectSet(name, OBJPROP_COLOR, textColor);
   ObjectSet(name, OBJPROP_ZORDER, 100);
   ObjectSetText(name, label, FontSize);
  }

今回のまとめ

最初にも書きましたが機能の洗い出しとGUIの設計は必ず最初にやろうです。
後からGUIの配置を変えることは想像を絶するくらいに苦痛です。
また次回に続きます。

【MT4】注文ツールを作成しようとしている話 その0~準備編・自動建値~【mql4】

はじめに

※注意事項※

現在注文ツールを作成しており、技術的な部分を含めて不定期更新しようかと思っております。

作成中の記事につきバグなどがある可能性が十分にあるため、そのままのコードを利用したい場合は注意してください。

また、今までに作成したコードをそのまま利用していたり、ほかサイトのコードを参考に作成している場合があるためコーディングの仕方が統一されていない場合があります、ご了承ください。

何をしたかったのか?

もとはといえば何がしたかったのかというと、「全ての通貨ペアポジション」に対する「ポジション管理機能」が欲しかっただけ。

エントリー後のポジション管理が甘く利益になったポジションを損失にしてしまうことが多かったため、強制的に「自動建値」を入れる機能があればマイナスは防げるかなと思ったからです。

ググっても自分の理想とする挙動のものが見つからないため、自分で作成しようと思いました。

そこからですが、紆余曲折あり今までにやりたかった機能を実装して注文ツールとして形にしようと考えています。

自動建値の処理

メインの処理

  • エントリー位置から「設定閾値」を超えた場合に「設定建値値幅」にslを移動する機能。
  • 同時にロット数が「0.01」以上ならば半分利確する機能。
void OrderBuyEven(double point)
  {
   if(MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice() >= BeslAt * point)
     {
      if(OrderStopLoss() < OrderOpenPrice() && OrderStopLoss() != OrderOpenPrice() + Besl * point)
        {
         Print("建値+", Besl, " pips");
         if(OrderLots() > 0.01)
           {
            ticket = OrderClose(OrderTicket(), NormalizeDouble(OrderLots() / Trades, NormDigit), MarketInfo(OrderSymbol(),MODE_BID), slippage, CLR_NONE);
            Print("半利しました ",OrderSymbol()," - ",iClose(OrderSymbol(),0,0));
           }
        }
     }
void OrderSellEven(double point)
  {
   if(OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK) >= BeslAt * point)
     {
      if(OrderStopLoss() > OrderOpenPrice() && OrderStopLoss() != OrderOpenPrice() - (Besl + spread)  * point)
        {
         Print("建値+", Besl, " pips");
         if(OrderLots() > 0.01)
           {
            ticket = OrderClose(OrderTicket(), NormalizeDouble(OrderLots() / Trades, NormDigit), MarketInfo(OrderSymbol(),MODE_ASK), slippage, CLR_NONE);
            Print("半利しました ",OrderSymbol()," - ",iClose(OrderSymbol(),0,0));
           }
        }
     }

欲しかった機能

通貨ペアごとに違う設定の閾値と、sl幅を設定できるようにしています。

現実的な用途を考えた場合ボラティリティが違うのに同一設定では使いづらいからという考えのもと設定値を増やしております。

細かくこれがこの設定と言うまで細分化はしてませんが、ある程度の区分けとして低ボラ通貨ペア、並ボラ通貨ペア、高ボラ通貨ペア、超ボラ通貨ペアと分けられるようにしています。

細かい処理は省きますが、簡単に説明します。

  • 設定値に変数としてカンマ区切りの通貨ペアを設定。
  • カンマ区切りにした変数を分割し配列に入れる。
  • 全ての注文状況を確認する。
  • それぞれオーダーの通貨ペアが配列の通貨ペアと一致した場合には予め設定してある個別設定を利用する。

という少し面倒な処理をしています。

            for(int i=0; i<ArraySize(PairList); i++)
              {
               if(OrderSymbol() == PairList[i])
                 {
                  BeslAt= BeslAt_Low * 10;
                  Besl= Besl_Low * 10;
                 }
              }

今回のまとめ

簡潔ですが今回はこのあたりまで。

まだ最終的な完成形ではないですが、少し違う形で機能ごとに無料公開を考えております。

もし詳細な情報を知りたい場合はこちらの記事やTwitter・Discordで質問をしていただくか、またはDiscordではリアルタイムで悩みながらコーディングをしているためそちらを参考にしていただければと思います。

【MT4】mql4で使われるpoint,pips計算値(株価指数・金・原油・商品)の話

前提

mql上では最小単位として「point」という概念で値が扱われます。

一般的に言われるpipsとは桁が違う場合が多くります。

また、内部的な数値として小数点以下幾つも値を持っている場合がある。

mql4では定義済み変数として「表示している通貨ペアが取り扱う最小単位の値」、「表示している通貨ペアの精度(小数点以下桁数)」がある。

表示している通貨ペアが取り扱える最小単位の値

_Point;
Point();

表示している通貨ペアの精度

_Digits;
Digits();

もう少し使いやすくする場合は、

MarketInfo(Symbol(),MODE_POINT), Digits() ));

として指定した通貨ペアの情報を取得することが可能である。

整理

基本的な考え方としては最小単位が1pips、ただし小数点が3桁、5桁ある通貨に関しては基準(Point)の10倍した数値が1pipsという認識でいいかと思います。

メジャー取引所での比較をしようと思ったのですが、主に金に対してのpipsが諸説あり基準が不明のために今回整理は端折ります。

その代わり実際にどう使えば良いのかを解説します。

mqlを書くときに考慮するべき事項

必ず同一の取引所での利用ならば何も問題はありません。

上記の表が示す意味は取引所によって1pipsの桁が違うことがあるということです。

で、どうしたらいいかというと桁を合わせる処理を実装します。

この辺りはググればよくでてくるあたりの話です。

実際に利用するコード

   if(MarketInfo(Symbol(),MODE_POINT) == 3 || MarketInfo(Symbol(),MODE_POINT) == 5) {
      point = _Point * 10.0;
   } else {
      point = _Point;
   }

このコードがしている処理についてですが、あくまで小数点以下3桁、5桁の通貨ペアに対してはデフォルトのPoint数に10を掛けて桁を合わせています。

ですがこれでできることは雑に言うと為替だけの話です。

為替の場合取引所や通貨ペアの差が多くなく、ほぼこの処理だけを入れておくことで処理しきることができます。

しかしながら、CFDなどですと取引所や通貨ペアで値が変わる場合が間々あります。

整理すべく途中まで調べた結果ですが、例えばXMGemforexのダウは「0.01」が最低数値ですが、TitanFXは「0.1」が最低数値だったりします。

そのため以下のような処理をして調整をします。

どちらに合わせるべきかというのは標準的な値を知りそちらに合わせるべきかと思います。

   if(MarketInfo(Symbol(),MODE_POINT) == 3 || MarketInfo(Symbol(),MODE_POINT) == 5) {
      point = _Point * 10.0;
   } else if(AccountCompany() == "取引所名" && Symbol() == "通貨ペア名"){
      point = _Point * 【調整係数】;
   } else {
      point = _Point;
   }

調整係数の探し方

ごちゃごちゃ長くなったのですが、いつも私がこのあたりで苦労するため簡単に調整値を出せるようにEA化しました。

左上にいろいろな情報を表示します。

右上のテキストボックスに「調整係数候補」の数値を入れると画面上の緑ライン、赤ラインが移動します。

0.01,0.1,1,10,100,1000等々。

表示されているラインがそれぞれ、「BID+差分pips」、「BID-差分pips」を表示しています。

デフォルトの値は50pipsにしてあります。

目的の値幅のラインが引ける値を探してください。

先述したとおり基本は10が入っていることで想定の値が表示されるはずです。

その値が「調整係数」となります。

Printボタンを押すことで下の条件文を下のターミナルに表示しますのでコピーして利用してください。

PointAdjuster.zip

Pips計算の方法

ここまで出来たら後は簡単。

例えばBidより20pips下の値段を計算したい場合はこの様に使ってください。

Print(Bid - 20 * point);