私たちのファンページに参加してください
CGoldSymbol - find the broker's gold and size the position correctly on it - MetaTrader 5のためのライブラリ
- ビュー:
- 18
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
金は、ブローカー間で合意がほぼ全く得られない取引商品です。銘柄コードは、XAUUSD、GOLD、XAUUSD.m、XAUUSDpro、あるいはGOLD#などさまざまです。1契約あたりの数量は100オンスの場合もあれば、10オンス、あるいは1オンスの場合もあります。価格の桁数は2桁の場合もあれば、3桁の場合もあります。 「100オンス、小数点以下2桁」というハードコードされた条件に基づいてロットサイズを算出するEAは、別のブローカーでは「少し間違っている」というレベルではなく、口座の資金を枯渇させる方向に10倍もの誤差が生じることになります。
このクラスは、仮定するのではなく、ターミナルに直接問い合わせます。
検出。 Detect()は、口座で提供されているすべての銘柄を順に調べ、名称のスコアを算出します。したがって、XAUUSDはXAUUSD.mに勝ち、XAUUSD.mはあいまいな一致に勝ちますが、銀、プラチナ、パラジウムは完全に除外されます。つまり、XAGUSDが金の検索で上位に表示されることは決してありません。マーケットウォッチにすでに登録されている銘柄には、わずかなボーナス点が加算されます。 お使いのブローカーが通常とは異なる表記を使用している場合、Attach("YOURNAME") を使用すると検索がスキップされます。
仕様。 ContractSize()、Digits()、Point()、TickSize()、TickValueLoss()、MinLot()、MaxLot()、LotStep()、StopsLevel()、およびFreezeLevel()は、そのシンボルに関するターミナルからの情報をそのまま反映しています。
資金。 LossForDistance(lots, distance) は、不利な価格変動が口座の通貨でどの程度の損失になるかを示します。LotForRisk(riskMoney, distance) はその逆の計算を行い、重要なのはこちらです: SYMBOL_TRADE_TICK_VALUE_LOSS を通じて換算を行うため、10オンスの契約やユーロ建ての口座でも正確な値を維持し、その結果をブローカーの取引単位ステップに合わせて切り下げ、その最小値および最大値の範囲内に収めます。 最小の取引量であっても許容リスク額を超える場合、この関数は黙って最小ロットを返すのではなく、0を返します。これは、ほとんどのロットサイズ計算コードが切り上げを行うことで誤りを生じがちなケースです。
診断機能。 Attach()は、契約サイズが100でない場合、桁数が異常な場合、ターミナルがゼロと報告するティック値、およびゼロ以外のストップレベルについて警告を収集します。PrintReport()は、具体例を交えた仕様全体を出力します。これは通常、2つのブローカー間で戦略の挙動が異なる理由を突き止める最も迅速な方法です。
100オンスの契約、ユーロ建ての残高、1500ポイントのストップを設定した実取引口座では、10,000ユーロの1%は0.07ロットとなり、90.42ユーロのリスクとなります。 10オンスの契約で同じ計算を行うと0.70ロット、1オンスの契約では7.00ロットとなります。リスクもストップも同一であるにもかかわらず、取引量は100倍もの差が生じます。これこそが、ハードコードされた定数による誤りの典型的な例です。
このパッケージには、GoldSymbolDemo.mq5が含まれています。これは、金のシンボルを検出し、レポートを出力し、残高の一定割合を複数のストップ距離に応じたロット数に変換するスクリプトです。任意のチャートで実行して、ご自身のブローカーにおける金の取引が実際にどのようなものかを確認してください。
このクラスは取引を開始したり、ポジションを変更したりすることはありません。あくまで疑問に答えるためのものです。

MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77067
Trade Excursion Report: MFE and MAE of every closed trade, to CSV
決済済みの取引1件につき1行のCSVを出力します。このデータには、取引明細には記載されていない以下の数値が含まれます:その取引で記録された最大の未実現利益(MFE)、耐え抜いた最大の未実現損失(MAE)、MFEのうち実際に確保できた額、取引が及んだバー数、および保有期間。 これは「Trade Excursion」インジケーターと同じ測定基準ですが、チャート上に描画するのではなくファイルに書き出されます。なぜなら、このデータから導き出される価値ある問いは、チャートだけでは答えられないものだからです。例えば、「キャプチャー比率はエントリーした時間帯によって異なるのか?」といった問いです。 早期に決済したトレードは、最も長く保有していたものなのか?月曜日のロストトレードは、金曜日のものとは異なるMAEに達するのか?CSVファイルさえあれば、ピボットテーブルを1つ作成するだけでこれらの疑問に答えられます。 出力はヘッダー行付きのセミコロン区切り形式(MQL5\Files)で、どのスプレッドシートでも開くことができます。測定上の制限:エクスカーションは選択した時間枠のバーの高値と安値に基づいて算出されるため、バー内の価格推移は不明です。「バー」列は各トレードの解像度を示しており、集計では単一バーのトレードを平均化せずに個別にカウントしています。
SessionReopenEA
CMEでは、金には日次メンテナンス休憩があります。11年間のサンプル期間において、どの暦年でも、休憩後の最初の1時間は、偶然で説明できる範囲を超えて価格が上昇していますが、その日の他の時間帯は横ばいとなっています。 1セッションにつき1回の取引、ボラティリティに比例したサーバーサイドストップ、平均化やグリッド戦略は行わない。 その後、私のコストモデルが誤りであることが判明した。 実際のティックデータを用いたバックテストの結果、取引再開時の真の往復コストは約60ポイントであることが判明しました。これは、私の調査で算出されていた19ポイントとは異なります。M1のバースプレッドフィールドはバーごとの集計値であるため、実際のコストを約3分の1に過小評価していたのです。修正後のコストで11年間のデータを再計算した結果は以下の通りです: +3.34 bps、t 7.40、勝率59.3% → +1.60 bps、t 3.42、勝率50.8% エッジは維持されていますが、その強さは当初の半分以下に低下しています。2つ目の数値こそが実態です。 これは、年間約+3.3%、ドローダウン4.6%、およそ9年に1回はマイナスの成績というものではない。0.01ロットの場合、年間約130回となるが、これは戦略そのものではなく、ポジションサイズを測る数値に過ぎない。
OHLC Reality Check - at what stop distance does your backtest start lying?
すべてのM1バーで仮想のブラケット取引を開き、実際のティック履歴に沿ってシミュレーションを進め、さまざまなストップ距離の範囲について、1分足OHLCモデリングが取引の結果を逆方向に予測してしまう頻度を報告します。
Accelerator Oscillator (AC)
アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。