エラー、バグ、質問 - ページ 621 1...614615616617618619620621622623624625626627628...3185 新しいコメント Alexey 2012.01.15 14:38 #6201 sergey1294: まず整数を割り算して整数を得る。型変換について https://www.mql5.com/ru/docs/basis/types/casting を読む。 確かにそうですが、以前はそうではありませんでした。悩むこともなかった。 Mykola Demko 2012.01.15 15:41 #6202 ivandurak: 確かにそうですが、以前はそうではありませんでした。悩むこともなかった。昔は4つだったのですか?5つでは最初からそうでしたし、これからもそうでしょう(1/2=0; 1./2.=0.5).重複を明示的に指定したい場合は、ポイントを追加してください。// Script program start function void OnStart() { int i; double a,b ; for(i=0;i<10;i++) { a=1./2.; b=1./2.; Print("a=",a," ","b=",b) ; } } Renat Fatkhullin 2012.01.15 15:46 #6203 Urain:昔は4つだったんですか? 最初から5つでしたから。明示的に重複を指定したい場合は、フルストップを付けてください。これは、4でも5でもなかったことです。 整数の演算は(純粋な整数定数の形であっても)曖昧さがない。 Sergey Molotkov 2012.01.16 09:00 #6204 テスターとデモ口座で齟齬が発生しました。取引 成立後、取引サーバーのレスポンス構造上、価格フィールドは異なる形で記入されます。デモ口座では、価格フィールド(取引が行われた価格)がすべてそのまま表示されますが、テスターではこのフィールドは0のままです。テストとして、1ティックごとに購入し、ログにリターンコードと価格を表示するExpert Advisorをスケッチしています。//+------------------------------------------------------------------+ //| test-expert.mq5 | //| Copyright 2012, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2012, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { MqlTradeRequest trade_request; MqlTradeResult trade_result; ZeroMemory(trade_request); ZeroMemory(trade_result); trade_request.action=TRADE_ACTION_DEAL; trade_request.volume=0.1; trade_request.type=ORDER_TYPE_BUY; trade_request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK); trade_request.symbol=_Symbol; OrderSend(trade_request,trade_result); Print(trade_result.retcode, "купили по цене ",trade_result.price); } //+------------------------------------------------------------------+ デモ口座で実行すると、ログに以下の文字列が含まれます。2012.01.16 12:48:29 test-expert (EURUSD,H1) 10009 1.266で買いました。また、ビジュアライザーで実行すると、これらの:2012.01.16 12:49:12 2011.12.30 00:00:11 10009 買値0.0これはバグですか、バグですか、それとも私が何か間違ったことをしたのですか? Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5 Alexey 2012.01.16 15:31 #6205 テスターで前史を管理する方法はありますか?2011年1月1日から今日までの1時間のテストでは、6000本のバーをロードするだけです。設定では、-最大バー数無制限。履歴はすべて1971年から分単位で読み込まれます。 Dmitriy Skub 2012.01.20 09:57 #6206 この疑問は、思いがけず湧いてきました。Expert Advisor でiCustom を 通してインジケータをロードすると、インジケータはロードされて正常に動作しますが、OnTimer 関数が呼び出されないという問題があります。こんなはずじゃなかったのに...それともバグ?同じインジケータをチャートに貼り付けただけでは、問題なく動作します。574を構築。 Anton 2012.01.20 10:55 #6207 Dima_S:この疑問は、思いがけず湧いてきました。Expert Advisor でiCustom を 通してインジケータをロードすると、インジケータはロードされて正常に動作しますが、OnTimer 関数が呼び出されないという問題があります。このようになるはずなのか、それともバグなのか? そのように設計されているのです。 Dmitriy Skub 2012.01.20 11:09 #6208 antt: そういうことなんです。 非常に独創的) Rashid Umarov 2012.01.20 11:17 #6209 Dima_S: 非常に独創的)タイマーイベントは、グラフに対して生成され、そこからグラフ上で動作するプログラムに対して(グラフの上に投げられる)生成されます。これがイデオロギーである「プログラムエグゼキューション」です。クライアント端末は、生成されたイベントを適切なオープンチャートに送信する。また、チャート(チャートイベント)やmql5-program(カスタムイベント)によってもイベントを生成することができます。チャートのCHART_EVENT_OBJECT_CREATE 及びCHART_EVENT_OBJECT_DELETE プロパティを設定することで、チャート上のグラフィカル オブジェクトの作成及び削除のイベント生成を有効/無効にすることができます。各mql5-programと各チャートは独自のイベントキューを持ち、そこにすべての新しいイベントが保存されます。 プログラムは、実行中のチャートからのイベントのみを受信します。すべてのイベントは、受信した順番に次々と処理されます。 そのため、Expert Advisorから呼び出されるインジケータは、タイマイベントを受信しません。Expert AdvisorからChartIndicatorAdd 関数を使ってチャートにインジケータを適用してみてください、何か変化がありますか? Anton 2012.01.20 11:19 #6210 Dima_S: 非常に独創的) もともとエキスパート向けのイベントであり、本来はチャートイベントである。インジケータでのイベントの使用は後から追加されたもので、インジケータがチャートに追加されている必要があるという制約があります。 1...614615616617618619620621622623624625626627628...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まず整数を割り算して整数を得る。型変換について https://www.mql5.com/ru/docs/basis/types/casting を読む。
確かにそうですが、以前はそうではありませんでした。悩むこともなかった。
昔は4つだったのですか?5つでは最初からそうでしたし、これからもそうでしょう(1/2=0; 1./2.=0.5).
重複を明示的に指定したい場合は、ポイントを追加してください。
昔は4つだったんですか? 最初から5つでしたから。
明示的に重複を指定したい場合は、フルストップを付けてください。
これは、4でも5でもなかったことです。
整数の演算は(純粋な整数定数の形であっても)曖昧さがない。
テスターとデモ口座で齟齬が発生しました。
取引 成立後、取引サーバーのレスポンス構造上、価格フィールドは異なる形で記入されます。デモ口座では、価格フィールド(取引が行われた価格)がすべてそのまま表示されますが、テスターではこのフィールドは0のままです。
テストとして、1ティックごとに購入し、ログにリターンコードと価格を表示するExpert Advisorをスケッチしています。
デモ口座で実行すると、ログに以下の文字列が含まれます。
2012.01.16 12:48:29 test-expert (EURUSD,H1) 10009 1.266で買いました。
また、ビジュアライザーで実行すると、これらの:
2012.01.16 12:49:12 2011.12.30 00:00:11 10009 買値0.0
テスターで前史を管理する方法はありますか?
2011年1月1日から今日までの1時間のテストでは、6000本のバーをロードするだけです。設定では、-最大バー数無制限。履歴はすべて1971年から分単位で読み込まれます。
この疑問は、思いがけず湧いてきました。
Expert Advisor でiCustom を 通してインジケータをロードすると、インジケータはロードされて正常に動作しますが、OnTimer 関数が呼び出されないという問題があります。
こんなはずじゃなかったのに...それともバグ?
同じインジケータをチャートに貼り付けただけでは、問題なく動作します。
574を構築。
この疑問は、思いがけず湧いてきました。
Expert Advisor でiCustom を 通してインジケータをロードすると、インジケータはロードされて正常に動作しますが、OnTimer 関数が呼び出されないという問題があります。
このようになるはずなのか、それともバグなのか?
そういうことなんです。
非常に独創的)
タイマーイベントは、グラフに対して生成され、そこからグラフ上で動作するプログラムに対して(グラフの上に投げられる)生成されます。これがイデオロギーである「プログラムエグゼキューション」です。
クライアント端末は、生成されたイベントを適切なオープンチャートに送信する。また、チャート(チャートイベント)やmql5-program(カスタムイベント)によってもイベントを生成することができます。チャートのCHART_EVENT_OBJECT_CREATE 及びCHART_EVENT_OBJECT_DELETE プロパティを設定することで、チャート上のグラフィカル オブジェクトの作成及び削除のイベント生成を有効/無効にすることができます。各mql5-programと各チャートは独自のイベントキューを持ち、そこにすべての新しいイベントが保存されます。
プログラムは、実行中のチャートからのイベントのみを受信します。すべてのイベントは、受信した順番に次々と処理されます。そのため、Expert Advisorから呼び出されるインジケータは、タイマイベントを受信しません。Expert AdvisorからChartIndicatorAdd 関数を使ってチャートにインジケータを適用してみてください、何か変化がありますか?
非常に独創的)