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

 
WinProject:
こんばんは、アドバイスお願いします。テキストファイル.csvのFileOpenを読んでいます。ファイルの各行には3つの値があり、それらは楽器、日付(降順)、価格です。最終日の価格コメントを取得したいのですが(1行目です)、ファイルは常に最後まで読み込まれるので、一番古い価格(最終行から)のコメントが取得されます。回避策なしに、1行目のコメントから価格値を取得するにはどうしたらよいでしょうか。

ファイルシーク(FileSeek)

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Igor Makanu:

各ブローカーは、独自の見積もりプロバイダを持っており、多くの場合、それらのいくつかは、さらに見積もりを平滑化するためのアルゴリズムがあります。

実際のティックが必要な場合は、TSをMQL5に移行してください。実際のティックによるテストがあるので、テストにかかる時間を短縮することができます。

見積書の平滑化のアルゴリズムについて、簡単に教えてください。mql5では、TSの履歴をティックでテストすることができます。つまり、結果はrequotesと ギャップで一対一になり、Bid Asc、requotesとギャップを考慮してティックでテストを行う機会があるのでしょうか。

 
Seric29:

見積もりを平滑化するアルゴリズムについて、簡単に教えてください。mql5では、ティック履歴上のTSをテストする機会、すなわち結果はrequotesとギャップを考慮して1対1になり、requotesとギャップだけでなく、Bid Ascを考慮してティックでテストする機会があります?

すべての情報は、このフォーラムで公開されている、ダニについて検索管理メッセージ6-8年前

テストの質について - 記事

 
Alexey Viktorov:

反対側の終値の出来高を開いてOrderCloseByを適用してみるとか?

ごあいさつ何が間違っているのか、教えていただけませんか?

OrderCloseBy()でエラー3発生

3

err_invalid_trade_parameters

不適切なパラメータ

コードサンプル

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict


datetime time; int ticket_buy; int ticket_sell; 
bool open=false; bool close=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  

time=TimeCurrent();
//if (Digits() ==3 || Digits()==5) {trailingStep*=10; }
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
//---
   
  }
void OnTick(){
if(!open && TimeCurrent()>=time+2600){
   ticket_buy=OrderSend(NULL, OP_BUY, 0.1, Ask, 1, 0, 0, "buy order", 0, 0, Blue);
   open=true;
}
if(!close && TimeCurrent()>=time+3000){
   if(OrderCloseBy(ticket_buy, ticket_sell , Black)){ }
   close=true;
}

}//+------------------------------------------------------------------+
 
Andrey Sokolov:

ごあいさつ何が間違っているのか、教えていただけませんか?

OrderCloseBy()でエラー3発生

3

err_invalid_trade_parameters

不適切なパラメータ

コードサンプル

のコードがテスターで動作し、OrderSend() を整頓し、価格とロットが正規化されない

と2番目の条件 - すべてのブローカーがOrderCloseBy()を使用できるわけではありません - これがエラーの主な原因だと思います。

 
Igor Makanu:

の場合、テスターでコードが動作します。

閉じるんですよね?どのようなブローカーをお持ちですか?アルパリを持っています。
 
Igor Makanu:

OrderSend() を整理し、価格とロットを正規化しない。


ここで何を正規化するのか、なぜ正規化するのかがよくわからないのですが、数学的な演算はないのに?
 
Andrey Sokolov:
数学的な演算がないのに、何を正規化するのか、なぜ正規化するのか、よくわからない?

あなたは、サーバーに正規化された価格を送信するために自分自身を慣らす必要があるため、今では注文が送信されます- 明日はそうではありません、あなたは常にあなたの間違いを探しているでしょう。

どこが複雑なんだ? ほら、複雑なら自分でコピーしてみろ。

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

数学的な操作は関係ありません。以前、新しいビルドでターミナルの動作がおかしくなったことがありましたが、その時の質問に対して、開発者は「コードを正しく書きなさい」と書きました。)

サーバーMetakvotであなたのコードをチェック - すべてが動作します。

SZS: 0は0.0ではないので、期待した結果にはならないかもしれませんが、バグを探さないというのも良い習慣です ;)

 
Igor Makanu:

と2番目の条件 - すべてのブローカーがOrderCloseBy()を使用できるわけではありません - これがエラーの主な原因だと思います。

一般的に、私はアルパリとおそらく他の人がサポートしていない場合は、すべてのマークでそれを動作しないように使用しない方が良いという正しく理解していますか?

 
Andrey Sokolov:

一般的には、Alpariやおそらく他の企業がサポートしていない場合は、全く使用せず、使えないとマークした方が良いと考えてよろしいでしょうか?

機能が動作している

ただし、各サーバの設定を確認する必要があり、普遍的な解決策はほとんどありません (alparsもstoplevel = 0なので、trailingで驚くかもしれません)。

私の記憶違いでなければ、MarketInfo()の中で、サーバーが反対注文を使ってポジションを閉じる かどうかを判断する要求があったはずです。