初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1443

 

説明のつかない瞬間に遭遇した。口座は実在する。ロボットはペンディングオーダーを 設定し、価格に追随します。価格がペンディングオーダーを「キャッチ」した後、指定したストップロスとテイクプロフィットで売りポジションを建てる。ここまでは何の問題もない。その後、価格は私が望む方向に動き、50ポイントの利食いをするはずだった。しかし、そうはならなかった。現在の価格がポジションを建てた時の価格にスプレッドの大きさを足したレベル、つまり50+14ピップスを下回ったにもかかわらず、ポジションは建値から36ピップスの大きさで決済された。このように、取引から取引へと時々刻々と繰り返される。テスターでロボットを動かしてみると、すべてのクローズポジションのサイズは50ピップスです。

本当に一定の乖離があり、そのサイズは14pipsのスプレッドのサイズにほぼ等しいのでしょうか?何か変だと思いませんか? これが昨日のトレードのログです。

KE      0       05:36:02.089    Trades  '1000008949': modify #1021600709 sell stop 0.04 EURUSDrfd -> price: 1.07870, sl: 1.07970, tp: 1.07820) done in 8.663 ms
RK      0       05:45:14.097    Trades  '1000008949': deal #1021883094 sell 0.04 EURUSDrfd at 1.07870 done (based on order #1021600709)
RJ      0       07:49:46.015    Network '1000008949': scanning network for access points
PJ      0       07:49:46.873    Network '1000008949': scanning network finished
IR      0       10:51:16.238    Trades  '1000008949': market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870
FF      0       10:51:16.258    Trades  '1000008949': accepted market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870
JF      0       10:51:16.558    Trades  '1000008949': market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870 placed for execution
OI      0       10:51:16.558    Trades  '1000008949': order #1021607738 buy 0.04 / 0.04 EURUSDrfd at market done in 316.213 ms
EF      0       10:51:16.558    Trades  '1000008949': deal #1021888944 buy 0.04 EURUSDrfd at 1.07834 done (based on order #1021607738)

よろしく、ウラジミール。

 
MrBrooklin ペンディングオーダーを 設定し、価格に追随します。価格がペンディングオーダーを「キャッチ」した後、指定したストップロスとテイクプロフィットで売りポジションを建てる。ここまでは何の問題もない。その後、価格は私が望む方向に動き、50ポイントの利食いをするはずだった。しかし、そうはならなかった。現在の価格がポジションを建てた時の価格にスプレッドの大きさを足したレベル、つまり50+14ピップスを下回ったにもかかわらず、ポジションは建値から36ピップスの大きさで決済された。このように、取引から取引へと時々刻々と繰り返される。テスターでロボットを動かしてみると、クローズしたポジションのサイズはすべて50ピップスになっています。

本当に一定の乖離があり、同じ大きさで、14pipsのスプレッドの大きさにほぼ等しいのでしょうか。何か変だと思いませんか? これが取引ログです。

よろしく、ウラジミール。

何か見落としているのかもしれませんが ビッド )と アスク(ask)の意味を理解する必要があると思います

 
Vladimir Deryagin #:

私が何かを見逃しているのかもしれないが ビッド アスクが何であるかを理解する必要があると思う

私も疑い始め、問題はコードにあるのではないかと考えました。しかし、ストラテジー・テスターでも同じ問題が発生しました。しかし、ストラテジーテスターではすべて問題ありません!私は取引を終了する過程で実行時間を赤くハイライトしました。ーもしかしたらーこれがーこれがー

よろしくお願いします。

P.S. 今日、3つの取引をして、10、14、15ポイントの乖離で決済しました。ー乖離のー((

 
5桁の価格で15~20pipsのスプレッドは普通です。また、50pipsではテイクには不十分です。もし利益がスプレッドと同じオーダーであれば、あなたは幸運ではないでしょう。人にもよりますが。
 
Aleksei Stepanenko #:
こんにちは、5桁の価格で15~20pipsのスプレッドは普通です。また、50ピップスでは十分なテイクとは言えません。もし利益がスプレッドと同じオーダーであれば、あなたは幸運ではないでしょう。人によりますが。

こんにちは、アレクセイ。これがロボットにとって最も理想的な戦略でないことは同意しますが、安定した利益が得られるのであれば、それに任せましょう。少なければ少ないほど良いのですが。

さて、私の質問についてです。すべてのログに目を通したところ、2月1日以降、取引終了までの時間が50~70ミリ秒から330~450ミリ秒へと急激に伸びていることに気づきました。何が起こったのか、私のFXディーラーに問い合わせてみます。

よろしく、ウラジミール。


 

Trade」テーブルでExpert AdvisorのIDを変更することが可能かどうか教えてください。

例えば、SellLimit注文を設定するスクリプトがあるとします、

trade.BuyLimit(1,10.75,NULL,0,0,0,0,0,NULL)とします;

この注文が同じような ID を持つ Expert Advisor に拾われるようにするには、コマンドのどこでどのように ID 番号を指定すればよいでしょうか?

 
BOBEF #:

Trade "テーブルでExpert AdvisorのIDを変更できるかどうか教えてください。

例えば、SellLimit注文を出すスクリプトがあるとします、

trade.BuyLimit(1,10.75,NULL,0,0,0,0,0,NULL);

この注文が同じような ID を持つ Expert Advisor に拾われるようにするには、コマンドのどこでどのように ID 番号を指定すればよいでしょうか?

 trade.SetExpertMagicNumber(magic);
 trade.BuyLimit(1,10.75,NULL,0,0,0,0,NULL);
 
Alexey Viktorov #:

ありがとう
 

何が間違っているのか

int aaa = StringFind(Set, txt);

Set - 探す文字列。

txt - 何を探しているか。

なぜaaa = -1 ?

そして一般的に、文字列変数は同じ文字列変数でも何らかの形で異なることがある。

string a = "A";

文字列c = "A";

どのような場合にa!

 


例えば、DatabaseOpen()関数はデータベースがロックされ、関数がアクセスできないたびにエラーを出力します。
しかし、これは私にとって通常の作業状況です。このエラーを自分でキャッチし、必要に応じて出力します。

その結果、ログ全体がロックされたデータベースに関するメッセージでいっぱいになってしまいます。

2023.02.13 18:57:21.917 database error, database is locked