エラー、バグ、質問 - ページ 219

 

ポジションを保有したままストップロスを変更する(ロスレスに移行する)という基本的な操作ができないのですが、どうしたらいいですか?検索で結果が出るかと思いきや、出なかった。

Requestはグローバル変数で、それでポジションが開かれ、その後ストップロスを移動させたい。

bool UpdateOrderSL(double sl) {
   request.order = P_order;
   request.action = TRADE_ACTION_MODIFY;
   request.sl = sl;
   OrderSend(request, result);
   if(result.retcode==10009 || result.retcode==10008) {
      Alert("Перенос SL");
      return true;
   } else {
      Alert("Запрос на изменение ордера не выполнен - код ошибки: ",GetLastError());
      return false;
   }

} 


結果

2010.12.05 13:23:18 Core 1 2007.12.04 20:00:00   Запрос на изменение ордера не выполнен - код ошибки: 4756
2010.12.05 13:23:18 Core 1 2007.12.04 20:00:00   failed modify order #8 buy 0.00 EURUSD at 0.00000 sl: 0.00000 tp: 0.00000 -> 1.46771, sl: 1.46771 tp: 1.47794 [Invalid request]

2010.12.05 13:23:18 Core 1 2007.12.04 12:00:00   Ордер Buy успешно помещен, тикет ордера #8


構造体は正しいデータで満たされており、必要なデータを変更しても、このような結果になるのですか?

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

Ais:

こちらをクリックしてください。

カラム名について

スクリーンショットから、「Profit」という隣の列をマウスでクリックしたことがわかります。"マウスのクリックについて "は、またしても意味不明です。
 
SergiusD:

出来栄え

2010.12.05 13:23:18 Core 1 2007.12.04 20:00:00   Запрос на изменение ордера не выполнен - код ошибки: 4756
2010.12.05 13:23:18 Core 1 2007.12.04 20:00:00   failed modify order #8 buy 0.00 EURUSD at 0.00000 sl: 0.00000 tp: 0.00000 -> 1.46771, sl: 1.46771 tp: 1.47794 [Invalid request]

2010.12.05 13:23:18 Core 1 2007.12.04 12:00:00   Ордер Buy успешно помещен, тикет ордера #8


構造体には正しいデータが格納されており、その中のデータを変更しても、このような結果になるのですが、なぜですか?

エラーコードと"1.46771, sl: 1.46771 tp: 1.47794 "という行から、最初の2つの値の一致にエラーがある可能性があることがわかります。音量がゼロになるなど。
 
Yedelkin:
エラーコードと"1.46771, sl: 1.46771 tp: 1.47794" という行から、最初の2つの値の一致でエラーが発生した可能性があることがわかります。音量がゼロになるなど。

TRADE_ACTION_SLTP を使ってレベルを変更すべきなんですね。

 
Yedelkin:

Ais

こちらをクリックしてください。

カラムの名前のところ。

スクリーンショットから、隣の「Profit」という列をマウスでクリックしたことがわかります。"マウスをクリックすることについて "は、また意味がわからない。

また」ではなく、まさに矢印で示された欄、ですから。

ウラン です。
イェデルキン
具体的にどこをクリックするのですか?列名について、それとも計算結果について?
ある列をクリックすると、すべてのデータがこの列の昇順にソートされ、どこか下の方にあるが結果に近いパスがその次にソートされる。

ドットプロットは、あなたが「クリック」するよう求められた正確な列のデータを示していることに注意してください。

ヒント:「Balance max」のスケール値を参照してください。

 
Ais:

そうなんです、そうなんですから。

無意味な議論はやめよう。隣接する2つの列の違いは、「結果」=「利益」+「開始残高」だけです。そのため、「Profit」をクリックすることでテーブルのデータがすでにソートされている場合、「Result」列を再度クリックすることは意味を持ちません。好奇心旺盛な研究者は、もう一度クリックしても新しい情報を得ることはできない。

ヒント:「開始残高」は固定されており、計算中に変化することはありません。

 

ドットプロットの縦目盛りが「結果」欄のデータを示しているように、では

1. 表示されたテーブルは、同じ「結果」カラムでソートされている必要があります。

2. 指定された値は、小さい値と大きい値が同時に見えるように、テーブルウィンドウの中央にある必要があります。

これらの条件を満たして初めて、結論が導き出されるのです。

 

また、点描画の水平 スケールは「Pass」列のデータを反映しているので、表も同じ「Pass」列でソートされなければなりません :)シリーズより:"Click away!":)

 

ご覧ください。

sultanm:

変なのです。今回で3回目です。グラフ上では値が近い点が2つあるが、結果的には1つである。

これらは、「合格」列ではなく「結果」列のデータを表す「バランス最大」のスケール値に近い点であるため、ソートは「結果」列で行う必要があります。

ヒントは、赤い四角で囲ったポイントです。

 
Ais:

Balance max "スケールに近い点数で、"Pass "カラムではなく、"Result "カラムのデータを表しているため、ソートは "Result "カラムで行う必要があります。

もちろんです :)おそらく、丸で囲ったヒント「指定された値は、小さい値と大きい値が同時に見えるように、テーブルウィンドウの中央に なければならない」のためと思われます :)

sultanmさん、 面白いので、もう一度表(今度は「結果」列)をクリックして、データが同一であることを同僚に納得してもらいましょう。