エラー、バグ、質問 - ページ 2033 1...202620272028202920302031203220332034203520362037203820392040...3185 新しいコメント Money_Man 2017.10.11 12:01 #20321 Stanislav Korotky: スクリーンショットにAAPLはありません。そして、SymbolSelectのリターンコードをチェックしない。#property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 ENUM_MA_METHOD MA_Type = MODE_SMA; ENUM_APPLIED_PRICE MA_Price = PRICE_CLOSE; int handle; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { Print(SymbolSelect("AAPL",true)); handle = iMA("AAPL",_Period, 10,0,MA_Type,MA_Price); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } //+------------------------------------------------------------------+スクリーンショットはAAPLが市場の概要にあることを示しているが、奇妙な、そうプリントは 偽を与える ps私はすでに上に書いた:ポイントは、1つの楽器で実行し、別のものからデータを取得することです... 私はAAPLのデータが欲しいなら、私は直接_Symbolを書いていただろう。 Vladimir Karputov 2017.10.11 12:03 #20322 Money_Man: スクリーンショットではaaplが存在するにもかかわらず、Printはfalseと表示されるのは不思議です。 ps すでに上に書きました:アイデアは、1つの楽器で実行し、別の楽器からデータを取得することです。 私はAAPLからAAPLのデータが必要だった場合、私は_Symbolを書いたでしょう。口座番号と 投資家パスワードはお客様からのものです。しかし、私は99.9%、トレーディングサーバーに「AAPL」というシンボルは存在しないと考えています :) TheXpert 2017.10.11 12:04 #20323 Money_Man: マーケットレビューのように「AAPL」ではなく「Apple」と書いてください。 Money_Man 2017.10.11 12:06 #20324 #property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 ENUM_MA_METHOD MA_Type = MODE_SMA; ENUM_APPLIED_PRICE MA_Price = PRICE_CLOSE; int handle; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { ResetLastError(); SymbolSelect("AAPL",true); int error = GetLastError(); Print(error); handle = iMA("AAPL",_Period, 10,0,MA_Type,MA_Price); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } //+------------------------------------------------------------------+そのため、エラー4305が発生します。 Vladimir Karputov 2017.10.11 12:07 #20325 Money_Man:このようにエラー4305が出ます接続先のトレードサーバーに「AAPL」マークはありません。そんなことはありません。 Money_Man 2017.10.11 12:07 #20326 Комбинатор: マーケットレビューのように「AAPL」ではなく「Apple」と書いてください。aaaaaaaaaca ))) 巻き込まれた(((;゚Д゚)))))))) 御免なさい) 複数の端末を開いているためでしょう。 ご回答いただいた皆様、本当にありがとうございました。 Kirill Belousov 2017.10.11 14:19 #20327 MT4テスターで履歴ファイルを作成する際、ヘッダーにTickValue=0、TickSize=0と手数料に関するパラメータを入れるのですが、どこがどうなっているのかわかりません。マージン欄の値も埋められる場合と埋められない場合がありますが、これはブローカーによって異なります。これはバグなのか、それともヘッダーの構造が間違っているのか?サイトのヘルプにはそう書いて ある。時代遅れであることがわかったため、こちらを使用しています。#property strict #property show_inputs input string symb="AUDCHF"; #define TOSTRING(A) #A+" = "+(string)(A) struct TestHistoryHeader { int version; // 405 char copyright[64]; // copyright char description[128]; // server name // 196 char symbol[12]; int period; int model; // for what modeling type was the ticks sequence generated int bars; // amount of bars in history int fromdate; int todate; int totalTicks; double modelquality; // modeling quality // 240 //---- general parameters char currency[12]; // currency base int spread; int digits; int unknown1; double point; int lot_min; // minimum lot size int lot_max; // maximum lot size int lot_step; int stops_level; // stops level value int gtc_pendings; // instruction to close pending orders at the end of day // 292 //---- profit calculation parameters int unknown2; double contract_size; // contract size double tick_value; // value of one tick double tick_size; // size of one tick int profit_mode; // profit calculation mode { PROFIT_CALC_FOREX, PROFIT_CALC_CFD, PROFIT_CALC_FUTURES } // 324 //---- swap calculation int swap_enable; // enable swap int swap_type; // type of swap { SWAP_BY_POINTS, SWAP_BY_DOLLARS, SWAP_BY_INTEREST } int unknown3; double swap_long; double swap_short; // swap overnight value int swap_rollover3days; // three-days swap rollover // 356 //---- margin calculation int leverage; // leverage int free_margin_mode; // free margin calculation mode { MARGIN_DONT_USE, MARGIN_USE_ALL, MARGIN_USE_PROFIT, MARGIN_USE_LOSS } int margin_mode; // margin calculation mode { MARGIN_CALC_FOREX,MARGIN_CALC_CFD,MARGIN_CALC_FUTURES,MARGIN_CALC_CFDINDEX }; int margin_stopout; // margin stopout level int margin_stopout_mode;// stop out check mode { MARGIN_TYPE_PERCENT, MARGIN_TYPE_CURRENCY } double margin_initial; // margin requirements double margin_maintenance; // margin maintenance requirements double margin_hedged; // margin requirements for hedged positions double margin_divider; // margin divider char margin_currency[12];// margin currency // 420 //---- commission calculation double comm_base; // basic commission int comm_type; // basic commission type { COMM_TYPE_MONEY, COMM_TYPE_PIPS, COMM_TYPE_PERCENT } int comm_lots; // commission per lot or per deal { COMMISSION_PER_LOT, COMMISSION_PER_DEAL } // 436 //---- for internal use int from_bar; // fromdate bar number int to_bar; // todate bar number int start_period[6]; // number of bar at which the smaller period modeling started int set_from; // begin date from tester settings int set_to; // end date from tester settings // 476 //---- int end_of_test; int freeze_level; // order's freeze level in points int generating_errors; // 488 //---- int reserved[60]; }; void OnStart() { //--- int dig=(int)MarketInfo(symb,MODE_DIGITS); TestHistoryHeader header={0}; ResetLastError(); int handle=FileOpen(symb+"1_0.fxt",FILE_READ|FILE_BIN); if(handle!=INVALID_HANDLE) { FileReadStruct(handle,header); FileClose(handle); } else {Print("Ошибка открытия файла ",GetLastError()); return;} Print(CharArrayToString(header.description)); Print(CharArrayToString(header.margin_currency)); Print(TOSTRING(header.set_from)); Print(TOSTRING((datetime)header.set_to)); Print(TOSTRING((datetime)header.end_of_test)); Print(TOSTRING(header.tick_value)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_VALUE),dig),dig))); Print(TOSTRING(header.tick_size)," Должно быть ", TOSTRING(DoubleToStr(NormalizeDouble(SymbolInfoDouble(symb,SYMBOL_TRADE_TICK_SIZE),dig),dig))); Print(TOSTRING(header.comm_base)); Print(TOSTRING(header.comm_type)); Print(TOSTRING(header.comm_lots)); Print(TOSTRING(AccountCurrency())); }問題のある箇所を黄色でマークしています。MetaQuotesのデモをプリントアウトしたものです。0 17:26:59.889 ReadFXTHeader AUDCHF,M1: Copyright 2001-2016, MetaQuotes Software Corp. 0 17:26:59.889 ReadFXTHeader AUDCHF,M1: AUD 0 17:26:59.889 ReadFXTHeader AUDCHF,M1: header.set_from = 0 0 17:26:59.889 ReadFXTHeader AUDCHF,M1: (datetime)header.set_to = 2017.10.09 00:00:00 0 17:26:59.889 ReadFXTHeader AUDCHF,M1: (datetime)header.end_of_test = 2017.10.11 00:00:00 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: header.tick_value = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF,SYMBOL_TRADE_TICK_VALUE),5),5) = 0.86761 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: header.tick_size = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF,SYMBOL_TRADE_TICK_SIZE),5),5) = 0.00001 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: header.comm_base = 0 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: header.comm_type = 0 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: header.comm_lots = 2 0 17:26:59.890 ReadFXTHeader AUDCHF,M1: AccountCurrency() = EURロボフォレックスのプリントアウト(接尾辞".e")を使用する。0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: RoboForex-Demo 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: AUD 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.set_from = 0 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: (datetime)header.set_to = 2017.10.09 00:00:00 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: (datetime)header.end_of_test = 2017.10.11 00:00:00 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.tick_value = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF.e,SYMBOL_TRADE_TICK_VALUE),5),5) = 1.02795 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.tick_size = 0 Должно быть DoubleToStr(NormalizeDouble(SymbolInfoDouble(AUDCHF.e,SYMBOL_TRADE_TICK_SIZE),5),5) = 0.00001 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.comm_base = -3.598220646991178 e+91 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.comm_type = 1064329805 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: header.comm_lots = 2 0 17:34:05.417 ReadFXTHeader AUDCHF.e,M1: AccountCurrency() = USDでは、任意のブローカーに接続します。シンボル履歴を増やす。テスターで任意のEAをM1上で実行する(テスト間隔は任意、完了を待つ必要はない)。テスト終了後、テスターで作成した履歴ファイルsymb+"1_0.fxt "をテスターフォルダからMQL4/Filesディレクトリにコピーしてください。任意のチャートでスクリプトを実行します。ログを見るのです。 Aleksey Vyazmikin 2017.10.11 21:55 #20328 MT5のチャート上でホームボタンを押すと、時々、チャートが任意の位置に移動することがあります。 Vitaly Muzichenko 2017.10.11 22:12 #20329 Aleksey Vyazmikin:MT5でチャートの「Home」ボタンが時々再生される、つまりチャートが任意に一番最初に移動する - 何がこの原因ですか?ドライバーで「ホーム」ボタンを掘り出す :) Alexey Navoykov 2017.10.12 01:03 #20330 Kirill Belousov:MT4テスターで履歴ファイルを作成する際、ヘッダーにTickValue=0、TickSize=0と手数料に関するパラメータを入れるのですが、どこがどうなっているのかわかりません。証拠金欄の値も記入されたりされなかったり、ブローカーによってまちまちです。...この不思議なフィールドがあるからこその問題なのだろう。 //---- profit calculation parameters int unknown2;原作にはなかったものですが、どこから出てきたのでしょうか? 1...202620272028202920302031203220332034203520362037203820392040...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
スクリーンショットにAAPLはありません。そして、SymbolSelectのリターンコードをチェックしない。
スクリーンショットはAAPLが市場の概要にあることを示しているが、奇妙な、そうプリントは 偽を与える
ps私はすでに上に書いた:ポイントは、1つの楽器で実行し、別のものからデータを取得することです... 私はAAPLのデータが欲しいなら、私は直接_Symbolを書いていただろう。
スクリーンショットではaaplが存在するにもかかわらず、Printはfalseと表示されるのは不思議です。
ps すでに上に書きました:アイデアは、1つの楽器で実行し、別の楽器からデータを取得することです。 私はAAPLからAAPLのデータが必要だった場合、私は_Symbolを書いたでしょう。
口座番号と 投資家パスワードはお客様からのものです。しかし、私は99.9%、トレーディングサーバーに「AAPL」というシンボルは存在しないと考えています :)
そのため、エラー4305が発生します。
このようにエラー4305が出ます
接続先のトレードサーバーに「AAPL」マークはありません。そんなことはありません。
マーケットレビューのように「AAPL」ではなく「Apple」と書いてください。
aaaaaaaaaca )))
巻き込まれた(((;゚Д゚))))))))
御免なさい)
複数の端末を開いているためでしょう。
ご回答いただいた皆様、本当にありがとうございました。
MT4テスターで履歴ファイルを作成する際、ヘッダーにTickValue=0、TickSize=0と手数料に関するパラメータを入れるのですが、どこがどうなっているのかわかりません。マージン欄の値も埋められる場合と埋められない場合がありますが、これはブローカーによって異なります。
これはバグなのか、それともヘッダーの構造が間違っているのか?サイトのヘルプにはそう書いて ある。時代遅れであることがわかったため、こちらを使用しています。
問題のある箇所を黄色でマークしています。
MetaQuotesのデモをプリントアウトしたものです。
ロボフォレックスのプリントアウト(接尾辞".e")を使用する。
では、任意のブローカーに接続します。
シンボル履歴を増やす。
テスターで任意のEAをM1上で実行する(テスト間隔は任意、完了を待つ必要はない)。
テスト終了後、テスターで作成した履歴ファイルsymb+"1_0.fxt "をテスターフォルダからMQL4/Filesディレクトリにコピーしてください。
任意のチャートでスクリプトを実行します。
ログを見るのです。
MT5のチャート上でホームボタンを押すと、時々、チャートが任意の位置に移動することがあります。
MT5でチャートの「Home」ボタンが時々再生される、つまりチャートが任意に一番最初に移動する - 何がこの原因ですか?
ドライバーで「ホーム」ボタンを掘り出す :)
MT4テスターで履歴ファイルを作成する際、ヘッダーにTickValue=0、TickSize=0と手数料に関するパラメータを入れるのですが、どこがどうなっているのかわかりません。証拠金欄の値も記入されたりされなかったり、ブローカーによってまちまちです。
...
この不思議なフィールドがあるからこその問題なのだろう。
原作にはなかったものですが、どこから出てきたのでしょうか?