問題タブ [metatrader4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
low-latency - MQL4、大きな EA のコード レイアウト
これは主に理論的な質問です (ただし、サンプル コードは常に歓迎されます)。
本当の問題は、複数のカスタム インジケーターから複数のシナリオをテストする EA の「フレーム」を正しくコーディングする方法です。
私が (忙しい) EA を構築する方法は、1 つの戦略にあまり焦点を当てていませんが、複数の戦略を「テスト」し、最も適切なものを「選択」しようとしています。
そのため、すべて「ステータス データ」の配列を返すいくつかのカスタム インジケーターを作成しました。
たとえば、次の指標があります。
- クロス移動平均インジケータ, 平均がクロスされたときにシグナルを発し、現在の位置が MA から移動したパーセンテージで示されます.
- ボリンジャー バンド インジケーター。バンド間の「余裕」を返し、バンドが「圧迫」を開始したときにシグナルを出します。
- 複数の時間枠の「方向/トレンド」インジケーター(上昇または下降に向かって移動する特定の時間枠です)。これは現在の方向を返し、時間枠の方向が変化した場合にシグナルを発します。
- 「小規模な」動きをチェックし、最良の売買ポイントを選択するためのADX インジケーター。
巨大なシナリオを 1 つ書くこともできますが、もっとうまくできると思います。たとえば、すべての時間枠が下降している場合 (下降トレンド)、多くの下降の動きを処理するための特別なシナリオを用意できます。しかし、現在の傾向がない場合は、別のシナリオが最適です。
なので、複数のシナリオを作るのがベストだと思います (まだ 1 EA です)。最初にすべてのカスタム指標データが収集され、次に各シナリオがそのデータを使用して計算を行います。次に、「スコア」を返し、最高のスコアが選択されます。
しかし、コードを最適な「概要」の方法でレイアウトするにはどうすればよいでしょうか?
シナリオごとにクラスを作成し、データを使用して手動で「チェック」する必要がありますか? そして、それらを複数のファイルに分割するだけ#include
ですか?
それともイベント駆動型ですか?リスナーを特定の指標イベントに対して実行、計算、および設定し続け、独自の方法でそこに移動するクラスを作成しました (それは素晴らしいことです)。
どんな考えでも大歓迎です!
アップデート2016-01-11,12:00
今は UML を作成する時間がありません..しかし、私は今のところ次のことを行います ->
Order
(Order
シングルトンで、注文リクエストを実行するだけです)Indicator
(各指標が拡張する基本クラス)Strategy
(各戦略が拡張する基底クラス)IndicatorFetcher
(すべてのインジケーターを保持し、各ティックで実行されます)StrategyRunner
(すべての戦略を保持し、各ティックで実行されます。IndicatorFetcher
)
各Strategy
インスタンスはIndicatorFetcher
(すべてのインジケーターのデータを含む概要を保持し、Order
シングルトンを使用して取引を実行する) へのアクセスを取得します。
file - ストラテジーテスターで EA を実行すると、MT4 はファイルエラー 4103 を開くことができません
構成ファイルを読み込むインジケーターを使用して EA を作成しました。この設定ファイルはフォルダに置かれますMQL4\Files
。
ライブ チャートで EA を実行すると、うまく機能します。しかし、ストラテジーテスターを使用してこの EA をテストしようとすると、4103 error: can not open file.
なぜこれが起こるのか分かりますか?
そして、この問題にどのように対処しますか?
mql4 - MQL4 (.mq4) で現在のクラスからファイル名を取得する方法は?
定型コードを防ぐために、クラスが実行されているファイルのファイル名を読みたいと思います。
利用可能なデフォルトのMQL4
関数はありませんが、ネイティブの Windows 関数 ( a GetModuleFileName()
from kernel32.dll
)で使用できるはずです。
ソース - https://msdn.microsoft.com/nl-nl/library/windows/desktop/ms683197(v=vs.85).aspx
について読んで#import
、Kernel32.dll
そこからいくつかの機能を盗みましたが、うまくいかないようです。
次のエラーが表示されます->
2015.01.05 00:15 Cannot find 'GetModuleFileName' in 'kernel32.dll'
それはそれ自体を説明します、それgetModuleFileName
はありませんkernel32.dll
現在のファイル名を取得する方法を知っている人はいますか?
metatrader4 - OnCalculate でカウントとボリューム キャンドルを取得する
ろうそくのボリュームと問題のろうそくを「カウンター」する方法を知りたいです。tick_volume[rates_total]
インジケーター「ボリューム」を使用したときに提示されたボリュームとは異なります。私は何か間違ったことをしていますか?
trading - [EA] のデモ版を MetaTrader のライブ口座で動作させるには?
ExpertAdvisor
Hedging Recovery EA という名前の( )がありEA
、私のデモ MetaTrader アカウントで正しく動作します。今、5 USD のデポジットでアカウントを作成し、+1000 USD をデポジットしようとしていますが、よくわかりません。EA
デモ EA はデモ メタトレーダー アカウントでのみ機能すると聞いたので、機能する場合。
それが本当なら、どうすればライブアカウントで機能させることができますか?
これは前述の実行形式ですEA
:
http://www.mediafire.com/download/cezoct5m7cgqngm/Hedging+Recovery.ex4
mql4 - [ MQL4 ] でエキスパートアドバイザーを書く
したがって、MQL4
始値を取る EA が必要な場合、現在の価格が始値より 10 ピップス低いときに買い注文を出し、始値より 10 ピップス高いときに売ります。一度に1つの注文のみで、オープンは毎日変わります。
Q1:どうすれば止まらないのですか?
Q2:それは利益になるでしょうか?
これを書くのは簡単な人もいますが、私にとっては気のめいるようです。
quantitative-finance - EAのサポートが必要
私はこのロジックをコーディングしようとしています:
if
no open orders
and
buy logic ( DayOpen - 10 * Point )
then
buy
if
bought
Sell
when
the one
(しかも唯一)bought order reaches Take Profit price.
これが私がこれまでに持っているものです: