mql5言語の特徴、微妙なニュアンスとテクニック - ページ 24

 
アレクセイ・ヴィクトロフ
ここから何が変わるのでしょうか。
Tradeのイベントに関する発言は、このスレッドのトピックに完全に合致しています。
 

短期的なネットワーク障害が発生した場合、取引イベントのリスニングにのみ基づく取引ロジックは無効となります。

そのため、OnTradeTransactionの熟練者は、少しオーバーな推論をしています。

これが、どのプラットフォームでも忠実に機能する売買ロジックの仕組みだ

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

EAで指値注文を使用する良い例

fxsaber さん 2017.01.02 23:12

私は、多くの場合、保留中の注文を通じてのみ取引しています。全く加工をしないこと。OrderSendは-1(MT4またはMT5+MT4Orders)を返しました - それは動作しませんでしたし、大丈夫、次のステップはまだ完全に取引環境を見て いるので。そして、もし保留/位置がなく、あるべき状態であれば、あるべき状態に同期さ せ、対応するOrderSendが送信される。

このアプローチでは、回帰や部分実行などのニュアンスはすべて考慮されます。そして、その実装は非常にシンプルで効率的です。一度も失敗したことはありません。

非同期メソッドを試したことがなく、ここではあまり難しいとは言えませんが、確証は持てません。

 
fxsaber

短期的なネットワーク障害が発生した場合、取引イベントのリスニングにのみ基づく取引ロジックは無効となります。

したがって、OnTradeTransactionの信奉者は、少し大げさな推論をしています。

これが、どのプラットフォームでも忠実に機能するトレードロジックの仕組みだ

はい、唯一の確実な方法は、取引口座の状況を確認することです。すべての OnTrade* イベントは、取引注文を 管理するための信頼できるメカニズムを提供することはできません。

非同期トランザクションの唯一の利点は、前の注文の結果を待たずに、連続して取引注文を送ることができることです。しかし、その実行制御もイベントに依存することはできず、この点では同期型オーダーの結果チェックと変わりはない。

取引口座の状態は、リクエストした時点のものです(リクエストは自分たちで行います)。ネットワークに問題がある場合、大したことはありません。ネットワークが復旧するまでリクエストすることができます。一方、イベントに頼ると、完全に外的要因に依存することになる。

 

fxsaber
このTrade-eventsの状況は、このブランチのテーマと完全に一致しています。

全く異論がないのですが、そんな微妙なところをキャッチする必要がある人はそう多くないと言いたいのです。

fxsaber

短期的なネットワーク障害が発生した場合、取引イベントのリスニングにのみ基づく取引ロジックは無効となります。

そのため、OnTradeTransactionの熟練者は、少し行き過ぎた推論をしています。

これが、どのプラットフォームでも忠実に機能するトレードロジックの仕組みだ

そして、私は誰もそれを阻止するつもりはありません。特に、サーバーからの戻りを制御することは非常に必要だと思いますので。ただ、アプローチの仕方が違うだけです。ご指摘の内容は正しいのですが、万能ではありません。

私の人生の原則である「悪くても自分なりにやる」ということなのかもしれません。何かあっても、誰も責めることはできない。"

 

4でシンボルのポイント値をMarketInfo(_Symbol, MODE_TICKVALUE) 関数で使うことに慣れた。まだ問題は起きていません。

MT5のブローカーによって、あまり統一されていないようです。2つのアカウントでEURUSDとUSDJPYで小さなスクリプトを実行しました。ポイント数、契約サイズにご注意ください。

MQのデモ口座です。

Just2Tradeのデモ口座 です。

どなたか、ポイント値を同じに見せるようなユニバーサルな機能をお持ちの方はいらっしゃいませんか?
ティックのサイズとコントラクトサイズを考慮する必要があることは理解しているが、もしかしたら他の何か?

例:EURUSDでドル建ての入金であれば-1ドル相当とするために5桁のポイントを1つ。

また、どのような場合にSYMBOL_TRADE_TICK_VALUE_PROFITや SYMBOL_TRADE_TICK_VALUE_LOSSを 使用すればよいのでしょうか?
 
ワシリー・プシュカリョフ

4でシンボルのポイント値をMarketInfo(_Symbol, MODE_TICKVALUE) 関数で使うことに慣れた。まだ問題は起きていません。

MT5のブローカーによって、あまり統一されていないようです。2つのアカウントでEURUSDとUSDJPYで小さなスクリプトを実行しました。ポイント数、契約サイズにご注意ください。

MQのデモ口座です。

Just2Tradeのデモ口座 です。

どなたか、ポイント値を同じに見せるようなユニバーサルな機能をお持ちの方はいらっしゃいませんか?
ティックのサイズとコントラクトサイズを考慮する必要があることは理解しているが、もしかしたら他の何か?

例:EURUSDでドル建ての入金であれば-1ドル相当とするために5桁のポイントを1つ。

SYMBOL_TRADE_TICK_VALUE_PROFITと SYMBOL_TRADE_TICK_VALUE_LOSSは いつ使うのが正しいのですか?
ニコナーズオフィス」の契約規模が通常の数千倍になれば、ポイントも通常と同じになります。とりあえず、今あるものを10万倍にして、欲しいものを手に入れればいいんです。
 
アレクセイ・ヴィクトロフ
ニコニコオフィス」の契約規模が10万になれば、ポイントも通常のものと同じになる。とりあえず、今あるものを10万倍にして、欲しいものを手に入れればいいんです。
私もかつて、このことで悩んだことがあります。MetaQuotes-Demoは1つのコントラクトサイズ、Just2Tradeは別のコントラクトサイズです。FXのものは1つ、株式などは1つです。- 別口すべての計算方法のリファレンスに書かれていることは、何しろ辻褄が合いません。そして、お客さまが待っている...。そこで、自動的に計算するのではなく、あくまでも100倍で計算することで合意しました。しかも、彼のJust2Tradeに限って。まだこのトリックは理解できない...。:((
 
アルチョム・トリシキン
私もかつて、このことに悩んだことがあります。MetaQuotes-Demoの場合、契約サイズは1つで、Just2Tradeの場合は別のサイズになります。FXの場合は同じですが、株などの場合は違います。- FX用、株用など、さまざまです。すべての計算方法のリファレンスに書かれていることは、何しろ辻褄が合いません。そして、お客さまが待っている...。そこで、自動的に計算するのではなく、あくまでも100倍で計算することで合意しました。しかも、彼のJust2Tradeに限って。まだこのトリックは理解できない...。:((

何がクリアでないのか?

標準契約のサイズ= 1は、1000ロットは1ピップの0.00001 * 1000/1 = 0.01を得た買った

もう一つの選択肢、コントラクトサイズ=100000で0.01ロットを購入(100000*0.01=1000)1ポイント獲得 1*1000/100000 = 0.01です。

5/3桁用です。

ps; そしてインスタでは、標準的な契約の大きさは10000でした。
 
アレクセイ・ヴィクトロフ

何がクリアでないのか?

標準的な契約サイズ = 1、1000ロット購入、1ピップで0.00001*1000/1 = 0.01を受け取りました。

もう一つの選択肢、コントラクトサイズ=100000で0.01ロットを購入(100000*0.01=1000)1ポイント獲得 1*1000/100000 = 0.01です。

5/3桁用です。

ps; そして、インスタでは、標準的な契約サイズは10000でした。
なるほど、3000枚や5000枚のロットに慣れていないだけなんですね。慣れるしかないですね。
 
ワシリー・プシュカリョフ
なるほど、3000や5000のロットを使い慣れてないだけなんですね。慣れるしかないでしょう。

慣れないうちは、このように書くとよいでしょう。

input double               lot         =  0.1;
input int                  take        =  100;   // TakeProfit

double takePips, contract;

/*******************Expert initialization function*******************/
int OnInit()
{
   contract = 100000/SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE)*lot;
    takePips = take*_Point;
   return(INIT_SUCCEEDED);
}/*******************************************************************/

そしてOrderSend()関数では ディーラーの気まぐれに関係なくコントラクト変数を送信する。
理由: