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

 

なぜ、この行でコンパイラが警告を出すのでしょうか?

datetime time_setup=OrderGetInteger(ORDER_TIME_SETUP);
possible loss of data due to type conversion    
 
ヒントを教えてください。ある数字を引くと3e-5になる。どうすれば0.00003に見えるようになりますか?ありがとうございます。
 
awsomdino:

なぜ、この行でコンパイラが警告を出すのでしょうか?

XxxxGetIntegerはlong(符号付き整数)を返すのに対し、datetimeは符号なし整数で、別の型だからです。を指定する必要があります。

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18:
教えてください。引き算をすると、3e-5という数字が出る。どうすれば0.00003に見えるようになりますか?ありがとうございます。

どこで手に入れるのですか?

 

こんにちは。

OnCalculate関数は、定期的に0を返します。

prev_calculated = 0

チャートにサードパーティーのリソースからの引用が入力 されているからだと思います。 チャートが上書きされているようには見えませんけど。

古いデータを書き換えることなく、新しいデータを上書きするにはどうしたらよいですか?

私はいくつかの計算を行うインジケータを作成するだけで、相場を読み込もうとしているわけではありません。

void filter(const int rates_total,const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if(prev_calculated>0)
      start--;
//---
   for(int p=2; p<Pmax; p++) // отбор по периодам
      for(int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
皆さん、良い時間をお過ごしください。質問:MT4で、テスターでクロス(掛け値なしのペア)を使って作業する場合、テストが行われる口座がドル口座であれば、テスターはどのようにクローズしたポジションの 結果を計算するのでしょうか?ドル建てのポジション合計の再計算では、テスターは、現在の時点またはテスト区間の時点のクロスの基準通貨の 対ドル為替レートを採用するのでしょうか。現在のところ、そうであることを強く疑っています。その場合、インターバルの時点でカウントさせることはできないのでしょうか?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij:

MQL4ではこの方法のみ。

結果


どうもありがとうございました。

 
Mihail Matkovskij:

どこで手に入れるのですか?

ここです。

double price1=1.23450;
double price2=1.23447;
double delta=price1-price2;
Alert("Разбег ",delta);
 
prom18:

ここです。

Alert("Разбег "+DoubleToString(delta,_Digits));

またはAlert(StringFormat("スプレッド %.5f",delta))が表示されます。

一般に、これらは同じ数の異なる表現に過ぎませんので、慣れるようにしてください。素晴らしい学生時代を思い出してください。

 
Top2n:

こんにちは。

OnCalculate関数は、定期的に0を返します。

チャートに第三者のリソースからの引用が記入されているから だと思います。 チャートが上書きされているようには見えませんが。

このような状態で、古いデータを書き換えることなく、新しいデータを上書きするにはどうしたらよいでしょうか。

私はいくつかの計算を行うインジケータを作成するだけで、相場を読み込もうとしているわけではありません。

グローバル変数の宣言(端末のグローバル変数と混同しないでください)

 bool firstRun = false;

で、最初のティックのみ完全な再計算を行います。

// простейшее условие пересчёта
if(!firstRun) {
  // пересчёт ...
  firstRun = true;
}

OnCalculateパラメータと一緒にfirstRunもリセットされる場合、インジケータは再起動します。