MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 517

 
Alexey Viktorov:

そして、同じ表現を使い続けるのです。


)))年上と年下の2つのオブジェクトがあり、年下(近い方)のオブジェクトのポイント価格が必要で、コメントで年上(遠い方)のオブジェクトのポイント価格を取得することができるのです。なぜ?コメントアウトされた前のループが最も遠いオブジェクトを返した場合、現在のループは最も近いオブジェクトを返す必要があります - last but returns the penultimate.私はここで何かを見失っています。
 
PolarSeaman:
)))年上と年下の2つのオブジェクトがあり、年下(近い方)のオブジェクトのポイント価格が必要で、コメントで年上(遠い方)のオブジェクトのポイント価格を取得することができるのです。なぜ?コメントアウトされた前のループが最も遠いオブジェクトを返した場合、現在のループは最も近いオブジェクトを返す必要があります - last but returns the penultimate.私はここで何かを見失っています。

1つ、そして2つ - ループ内のオブジェクトを時間で選択するには、前のオブジェクトと現在のオブジェクトという2つの時間を比較する必要があります。もし現在時刻の 方が長ければ、それを変数に格納し、次のループの繰り返しでチェックする。ループの最後には、この変数に最も新しく作成されたオブジェクトが格納されます。

 
YanSay:

試してみましたが、うまくいきません、何か間違っているようです(

OrderDelete()関数の引数にticketではなく100を指定したのが最も大きな誤りです。

次のエラーは、それほど荒っぽいものではありませんが、ストップロスの実際の値ではなく、計算された値がチェックされることに関連しています。

注文の種類もチェックされない。成行注文を選択した場合はどうなりますか?削除する方法は?注文記号が確認されていない。

これらのエラーを考慮し、価格がストップロスに達したときに保留中の注文を削除 するコードを取得します。

for (int i = OrdersTotal() - 1; i >= 0; --i)
{
   if (!OrderSelect(i, SELECT_BY_POS))
      continue;

   if (OrderSymbol() != Symbol())
      continue;

   if (OrderMagicNumber() != 100)
      continue;

   if (((OrderType == OP_BUYSTOP || OrderType() == OP_BUYLIMIT) && Bid <= OrderStopLoss()) ||
       ((OrderType == OP_SELLSTOP || OrderType() == OP_SELLLIMIT) && Ask >= OrderStopLoss() && OrderStopLoss() > 0.0))
   {
      if (OrderDelete(OrderTicket()))
         RefreshRates();
   }
                                        
}   
また、あなたのコードでは、ストップロスは注文を開いた直後にチェックされます。保留中の注文を開いた後、このコードは実行されなくなるようです。つまり、実行ブランチを分離する必要があるのです。1人はオーダーを決める役割、2人はその伴奏を担当する。
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 

こんにちは、皆さん。

Ctrl+1などのキーの組み合わせをキャッチする方法を教えてください。キーボードの1つのキーをキャッチする方法を知っています。

しかし、私はmt4で組み合わせが必要です - どのようにそれを行うには!?

 
Игорь:

こんにちは、皆さん。

Ctrl+1などのキーの組み合わせをキャッチする方法を教えてください。キーボードの1つのキーをキャッチする方法を知っています。

Mt4の組み合わせが必要なんだけど、どうすればいいんだろう !

イベントOnChartEvent、分析パラメータ lparam と sparam、Ctrl+1 を押すと 2 つのイベントになるため。

 
Ihor Herasko:

OnChartEventイベントにおいて、Ctrl+1を押すと2つのイベントが発生するので、lparamとsparamパラメータを解析する。

いや、動かないよ。

Ctrlキーを押した時だけ表示され、他のプラス1や文字が表示されません。

 
Игорь:

いや、うまくいかないんだ。

kntrlを押してくださいと表示されるだけで、他のプラス1や文字が機能しません!

と書きました。

Ctrl+1を押すと2つのイベント

2つの事象を捉えて分析する。

2018.04.05 12:26:32.170 Test EURUSD,M15: OnChartEvent, id: CHARTEVENT_KEYDOWN, lparam: 17, dparam: 1.0, sparam: 285
2018.04.05 12:26:32.396 Test EURUSD,M15: OnChartEvent, id: CHARTEVENT_KEYDOWN, lparam: 49, dparam: 1.0, sparam: 2

これは、Ctrl+1キーを押すことです。

 
Ihor Herasko:

と書きました。

2つの事象を捉えて分析する。

これは、Ctrl+1キーを押すことです。

ここでは、counterclまたは1のみで、他はイベントなし、またはあなたのコードを表示します。

ctrlを押した後、ctrlを離すまで他のイベントは発生しません!

エラーが見つかりました、ありがとうございます

 
重複を削除しました。
 
Vitaly Muzichenko:

プロフィールで?=)

:)