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

 
secret:

ご返信ありがとうございます。ドキュメントとあなたの例の両方を見ましたが、MT4でOrderClosePrice()と同様のパラメータを取得する方法はまだ見つかっていません。

ENUM_DEAL_ENTRY ==DEAL_ENTRY_OUT && ENUM_DEAL_TYPE == DEAL_TYPE_SELL --- それは買いポジションが閉じられたことを意味し、したがって DEAL_PRICEは終値となります

 
secret:

ご返信ありがとうございます。ドキュメントとあなたの例の両方を見ましたが、MT4でOrderClosePrice()と同様のパラメータを取得する方法はまだ見つかっていません。

直接的な類似はありません。ポジションはトレードで構成されています。もし、あるポジションの正確なデータが必要な場合、まず取引履歴からポジションを組み立てる必要があります。

ですから、"ディール "という概念で仕事をするのがよいでしょう。


一般に、実装は「なぜ?」という問いに対する答えに大きく依存します。つまり、まず自分が何をしたいのか、なぜしたいのかを正確に記述することです。

 
secret:

注文(取引、ポジションなど、あらゆるもの)の終値を取得するにはどうすればよいですか?

フォーラムをググっても見つからなかった。

https://www.mql5.com/ru/forum/162461

Как определить последнюю цену закрытия ордера (MQL5)?
Как определить последнюю цену закрытия ордера (MQL5)?
  • 2016.12.05
  • www.mql5.com
Подскажите как определить последнюю цену закрытия ордера (MQL5)? В MQL4 было просто OrderClosePrice...
 
Igor Makanu:

代わりに、https://www.mql5.com/ru/code/16006 を開きます。

@fxsaber の 実装を見て みましょう。

ライブラリの他のすべての部分と強い依存関係があるため、そこから実装をはぎ取るのは非現実的なのです。

 

友人たちよ、一見簡単そうに見える問題を解決する方法をアドバイスしてください。コードの一部です。

double stavkariska;

//ставка риска по инструментам

if(StringCompare(_Symbol,"VTBR")==0||StringCompare(_Symbol,"LKOH")==0)

   {double stavkariska=0.3;}

else double stavkariska=1;

  int lot=int (depozit/(d*stoimkontr)*stavkariska); 

コンパイラの警告です。

stavkariska' の宣言が 25 行目のローカル宣言を隠している script.mq5 32 12

possible use the uninitialized variable 'stavkariska' script.mq5 33 39

この問題を解決するために、警告を出さずにコンパイルする正しい方法は何でしょうか?


Компиляция - Разработка программ - MetaTrader 5
Компиляция - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Компиляция — это процесс перевода исходного кода MQL4/MQL5-программы на машинный язык. Ее результатом является создание исполняемого файла программы (*EX4 или *.EX5), который может быть запущен в торговой платформе. Скомпилировать можно любой файл (*.MQ4, *.MQ5 или *.MQH), однако исполняемый файл (*.EX4 или *.EX5) может быть получен только в...
 
TrueSam:

友人たちよ、一見簡単そうに見える問題を解決する方法をアドバイスしてください。コードの一部です。

コンパイラの警告です。

stavkariska' の宣言が 25 行目のローカル宣言を隠している script.mq5 32 12

possible use the uninitialized variable 'stavkariska' script.mq5 33 39

警告を出さずにコンパイルできるようにするには、どのようにしたら正しく解決できるでしょうか。


翻訳機を利用する。

декларация 'stavkariska' скрывает локальную декларацию в строке 25 скрипт.mq5 32 12

возможно использование неинициализированной переменной 'stavkariska' скрипт.mq5 33 39


つまり、変数の宣言はより慎重に行い、同じスコープに同じ変数を宣言しないようにします。

変数を宣言したら、すぐに初期化する習慣を つけましょう。

   double StavkaRiska=0.0;// ставка риска по инструментам

   if(StringCompare(_Symbol,"VTBR")==0 || StringCompare(_Symbol,"LKOH")==0)
     double StavkaRiska=0.3;
   else StavkaRiska=1;

   int lot=int(depozit/(d*stoimkontr)*StavkaRiska);
 
Vladimir Karputov:

翻訳機を活用する。


つまり、変数の宣言はより慎重に行い、同じスコープに同じ変数を宣言しないようにします。

変数を宣言したら、すぐに初期化する習慣を つけましょう。

問題は、If else文の中で別の変数を宣言すると、もう一度宣言する必要が出てきて、そうしないと「'stavkariska1' - undeclared identifier」というエラーになります。 初心者には悪循環ですね。もしかしたら、他にもセレクションの実装方法があるのでは?
 
TrueSam:
ただ、If else演算子で別の変数を宣言すると、もう一度宣言しないと「'stavkariska1' - undeclared identifier」というエラーが発生します。 初心者の悪循環ですね。もしかしたら、他に選択項目を実装する方法があるのかもしれませんね。

小さなロボットも慌ててミスをした。

   double StavkaRiska=0.0;// ставка риска по инструментам

   if(StringCompare(_Symbol,"VTBR")==0 || StringCompare(_Symbol,"LKOH")==0)
     double  StavkaRiska=0.3;
   else StavkaRiska=1;

   int lot=int(depozit/(d*stoimkontr)*StavkaRiska);

ハイライトされているものは不要です。再宣言しなくても、本来は動作するはずです。

 
Alexey Viktorov:

小さな蟹工船も慌ててミスをした。

強調表示されているのは冗長です。再告知がなければ、そのまま使えるはずです。

ご清聴ありがとうございました。すみません、コピーペーストでブラウザに直接打ち込んでしまいました。

 
Alexey Viktorov:

小さな蟹工船も焦りからか、ミスを犯してしまった。

強調表示されているのは冗長です。再発表がなければ、そのまま機能するはずです。

ありがとうございました。グレイルが効いて いる :)
理由: