レディメイド・エキスパートとプログラミング/フリーランスのメリット。
Push.Mail。MetaTraderでEメールと通知を操作する

説明
スキャルピングは、最も挑戦的でリスクが高く、同時に迅速な資金獲得方法の一つです。しかし、取引を行った後に利益を確実に受け取れるわけではありません。
ティックデータ率に基づく戦略は、おそらく最も議論されている収益性の高いシステムの一つです。しかし、考慮すべきいくつかのニュアンスがあります。
端末に入るクォートは、異なる量のデータを含んでいます。
同じ会社からの2つの同一の端末をインストールし、同時に起動したとしても(これは非現実的ですが)、100%正確な結果を達成することはできません。
さらに、同時にスキャルパーを起動しても、完全に同期された結果は得られません。
2つの端末での取引は異なる場合があります。
この変動は、サーバーから端末へのデータ伝送フローのみに依存します。
私のシステムTickSniper for MT4とTickSniper for MT5の議論は、他のフォーラムで一つの質問と共に行われます:なぜMT4とMT5で異なるオープンポジションと利益があるのですか?
答えは簡単です:クォートの違いです。MT4端末はクォートフローが遅く、恐らくトラフィックの混雑が原因です。
MetaTrader 5端末では、クォートストリームが10倍速く、オープントレード間に大きな違いが生じます。
この記事のために、2つのエキスパートアドバイザーが特別に開発されました:TEST TICK for MT5とTEST TICK for MT4。これらはコードが完全に同一です(もちろん、プログラミング言語が異なるため、関数名は異なります)。
MT4用コード:
#property copyright "Copyright 2024, expforex"
#property link ""
int timestart = 0;
int ticknumber = 0; // Tick number
double PriceBID = 0; // BID tick price
double PriceASK = 0; // ASK tick price
int TimemsTick = 0; // Tick time in ms
int init()
{
timestart = Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way.
return(0);
}
// The advisor starts with each tick
int start()
{
if(timestart != Time[0])
{
if(TimemsTick == 0)
TimemsTick = GetTickCount();
ticknumber++;
PriceBID = Bid;
PriceASK = Ask;
Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick));
Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick));
}
return(0);
}
MT5用コード:
#property copyright "Copyright 2024, expforex."
#property link ""
#property version "1.00"
int timestart = 0;
int ticknumber = 0; // Tick number
double PriceBID = 0; // BID tick price
double PriceASK = 0; // ASK tick price
int TimemsTick = 0; // Tick time in ms
int OnInit()
{
datetime Time[];
ArraySetAsSeries(Time, true);
CopyTime(_Symbol, _Period, 0, 1, Time);
timestart = (int)Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way.
return(INIT_SUCCEEDED);
}
// The advisor starts with each tick
void OnTick()
{
datetime Time[];
ArraySetAsSeries(Time, true);
CopyTime(_Symbol, _Period, 0, 1, Time);
if(timestart != (int)Time[0])
{
if(TimemsTick == 0)
TimemsTick = (int)GetTickCount();
ticknumber++;
MqlTick last_tick;
SymbolInfoTick(_Symbol, last_tick);
double Bid = last_tick.bid;
SymbolInfoTick(_Symbol, last_tick);
double Ask = last_tick.ask;
PriceBID = Bid;
PriceASK = Ask;
Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick));
Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick));
}
return;
}
これらのエキスパートが行うこと:
初期化時に、アドバイザーは開始したバーを記録し、すべての4つの端末でのすべてのエキスパートが次のバー(この場合、M30)で同時に開始することを確認します。
その後、各ティックごとに、アドバイザーは画面とログにティック番号、BID/ASK価格、および計算開始からのミリ秒単位のティック時間を記録します。
テストをより信頼性の高いものにするために、同じブローカーから2つのMT4端末と2つのMT5端末をダウンロードしました。
MetaTraderをインストールしましたか?
MetaTraderはwww.expforex.comからのインストールに必要です

端末を起動し、EURUSD M30チャートをすべての4つの端末に適用し、1つのエキスパートアドバイザーを使用して観察結果を検証しました。
ログの初期エントリは、私たちが同時に開始したことを示しています:
mt4_1:
18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0
mt4_2:
18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0
mt5_1:
GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503
mt5_2:
GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674
次のスクリーンショットに見られるように、クォートは同一に開始しましたが、1〜2ティックの不一致が観察されました。これは明らかに次のことを示しています:
スキャルパーは、2つの異なるMT4プラットフォームおよびMT5で100%同一の結果を達成することはできません。
また、同じMT4/MT5プラットフォームの2つの端末で同時に取引を開くこともできません。
これは非現実的であり、ブローカーのせいではありません。
トランスポートプロトコルは、サーバーからコンピューターへのネットワークを経由してパケット損失を引き起こし、これは通常の現象です。
計算と分析の違い
以下のスクリーンショットは、不一致を示しています:
これはアドバイザーの開始からわずか3分後です。
MT4端末でのティック番号1433のログを参照しましょう:
18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503
18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674
同じサーバー時間がありますが、ミリ秒単位の時間とクォートが異なります。
ティック番号1684
18:52:05 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32377000 PriceASK = 1.32385000 TimeTickinms = 1326586
18:52:03 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32374000 PriceASK = 1.32382000 TimeTickinms = 1324496
時間だけでなく、BID/ASK価格も異なります。
次に、MT5端末で同じものを比較しましょう:
ES 0 18:48:42 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.3231 PriceASK = 1.32318 TimeTickinms = 1124050
DS 0 18:48:43 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.32311 PriceASK = 1.3232 TimeTickinms = 1124502
同じティック番号ですが、なぜ価格が異なるのでしょうか?
また、別の例を示します:
RJ 0 18:52:21 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32363 PriceASK = 1.32371 TimeTickinms = 1342701
H 0 18:52:22 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32364 PriceASK = 1.3237 TimeTickinms = 1344355
ミリ秒単位のティック到着時間の違い、ASK/BID価格の違い
アーカイブには、この記事に関連するすべての資料が含まれており、エキスパートアドバイザー自体、ビデオ、画像、および端末のログファイルが含まれています。
疑問が生じます:
同じエキスパートアドバイザーが、2つの実際のアカウント、一つのブローカー、一つのプラットフォームで、100%の精度で同一の取引を実行できますか?
明白な答えは「いいえ」です。
これは発生しません!
この知識により、端末全体でスキャルパーをより正確に操作できるようになり、将来的にこの記事がすべての質問に詳細に答えることを願っています。
利益を増やしましょう。
Ping(ブローカーのサーバーへのアクセス時間)の確認方法
VPSからブローカーのサーバーへの速度は簡単に測定できます。この機能はWindowsに標準搭載されており、PINGと呼ばれます。
アクセス時間を測定するには、サーバーのアドレスを見つける必要があります。
まず、端末のフォルダを開き、CONFIGサブフォルダに移動します。
サーバー名が記載されたファイルを見つけます。
次に、そのファイルをメモ帳で開き、ブローカーへのパスを見つけてクリップボードにコピーします。
その後、スタートメニューを開き、cmdコマンドを入力します。
次に、pingコマンドの後にサーバーのアドレスを入力します。
ping mt4-demo.roboforex.com
結果には、コンピューターからブローカーのサーバーまでの時間がミリ秒(ms)で表示されます。
値が低いほど、どのエキスパートアドバイザー、特にスキャルパーにとって良好です。
サーバーへのpingを確認するか、端末の右下隅にあるデータセンターを変更することもできます:
もしpingが高すぎる場合、VPSサーバーにエキスパートアドバイザーをインストールすることができます。
質問がありますか?
質問がある場合は、お気軽にお問い合わせください。私たちは「裏表のない取引」を提供します。
私たちの製品は、購入前にテストすることができます。
私たちは、お客様のフィードバックや製品に対するリクエストを大切にし、高品質の基準を維持するよう努めています。
ご愛顧ありがとうございます!
質問がありますか?
この記事は次の言語でもご覧いただけます: English Portuguese Español Deutsch Українська Chinese Русский Français Italiano Türkçe 日本語 한국어 العربية Indonesian ไทย Tiếng Việt


コメントを残す