エラー、バグ、質問 - ページ 284 1...277278279280281282283284285286287288289290291...3185 新しいコメント Voodoo_King 2011.01.28 22:05 #2831 alexvd:ストップとTPはどのように設定するのですか?最初にポジションを建ててから修正するのか、それともすぐに適切なSLとTPを指定するのか? まずポジションを開いてから 修正する...。 Валерий 2011.01.28 22:40 #2832 Voodoo_King:ビルド384です。履歴を見るときに、設定したストップロスやテイクプロフィットレベルの注文が表示されないのですが・・・。オーダー設定時に「表示」されます。これは、サーバーがポジションを 閉じる際にストップを設定しないため、当然といえば当然です。 削除済み 2011.01.28 23:14 #2833 というような発見がありました。バグかどうかわからないが、バグに見える。以下のコードです。lot=NormalizeDouble(My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_BUY,latest_price.ask)/10,2); printf(lot);テスターログに出力(1000円の保証金で)。2011.01.28 20:06:48 Core 1 2010.01.04 00:56:00 0.07000000000000001関数(NormalizeDouble)は7以降の0以外の数字を削除してはいけないのでしょうか?フォームに解決策を見出したと思った。lot=floor((My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_SELL,latest_price.ask)/10)*100)/100,が、私も同じような結果になりました。何をすべきか - トレードクエリではどの程度重要か? Alexey Kozlov 2011.01.28 23:44 #2834 こんにちは。ループの本体にComment関数を追加して、ループの実行状況のパーセンテージと他のいくつかの値を表示できるようにしました。この単純なアルゴリズムは、ループ本体での実行に5分(それ以上でないとしても)かかりましたが、32000本のバーの値(Close, High, Low, Open)を再計算しただけです。ループの実行中に配列が動的に増えていると訴えたが、そんなことはない。アルゴリズムのデバッグ後、Commentは削除されました - 計算は神頼みで行われるようになりました。Comment機能は本当にプログラムの実行を 遅くするのでしょうか?率直に言って驚いています。システム:Windows XP、Terminal 5.00.384。 Документация по MQL5: Программы MQL5 / Выполнение программ www.mql5.com Программы MQL5 / Выполнение программ - Документация по MQL5 削除済み 2011.01.28 23:49 #2835 KffAlex:こんにちは。ループの本体にComment関数を追加して、ループの実行状況のパーセンテージと他のいくつかの値を表示できるようにしました。この単純なアルゴリズムは、ループ本体での実行に5分(それ以上でないとしても)かかりましたが、32000本のバーの値(Close, High, Low, Open)を再計算しただけです。ループの実行中に配列が動的に増えていると訴えたが、そんなことはない。アルゴリズムのデバッグ後、Commentは削除されました - 計算は神頼みで行われるようになりました。Comment機能は本当にプログラムの実行を 遅くするのでしょうか?率直に言って驚いています。システム:Windows XP、Terminal 5.00.384。 同じような効果があることに気づきました。 Jager 2011.01.29 00:08 #2836 始値のみで Expert Advisorを実行すると、始値ではなく高値で売りポジションを建て、安値で決済されます。なぜ、このようなことが起こるのでしょうか。Expert Advisorは、Open[0]価格のみを使用してポジションのオープンとクローズのシグナルを検索します。 EventSetTimer(1)が使用されています。 Voodoo_King 2011.01.29 11:22 #2837 Valmars:注文時に出力される。サーバーがストップを使ってポジションをクローズした場合は利用できません。サーバーはポジションクローズ時にストップを設定しないため、当然のことですが。どうしたの?)注文の際、どこに表示されるのですか?履歴」レポートについてですが、ポジションにこれらの値があるにもかかわらず、ストップロスやテイクプロフィットの 欄に何も表示されないのですが。ストップロスが設定されたかどうかを知るにはどうしたらいいのでしょうか?つまり、発動された場合は見ることができますが、そうでない場合はどうしたらいいのでしょうか? DV2010 2011.01.29 12:51 #2838 次のような疑問があります。 タスクは、テストフェーズでEquity値を特定のファイルに書き込み、以前の値を消去することである。 しかし、ここで起こるのは次のようなことです。 1.OnInit()において、FileDelete() が存在しない場合、既存のものに加えて書き込まれる。 2.しかし、OnInit() の FileDelete() があると、OnCalculatde() で同じ Equity レコードがあるにもかかわらず、結果のファイルは空になってしまうのです。 なぜそうなるのか、どうすれば回避できるのか。 以下はそのコードです。#property copyright "Copyright 2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 Red #property indicator_style1 STYLE_SOLID #property indicator_width1 1 double Values[]; string Array[]; string filename="equity FileWrite25.txt"; int handle; int NumberCopyElements; string common_folder; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit(){ SetIndexBuffer(0,Values,INDICATOR_DATA); PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, 100); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, EMPTY_VALUE); ArraySetAsSeries(Values, false); //--- common_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH); FileDelete(filename,FILE_COMMON); return(0); } 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[]) { uint written; handle=FileOpen(filename,FILE_WRITE|FILE_READ|FILE_COMMON|FILE_TXT); if(handle!=INVALID_HANDLE){ FileSeek(handle,0,SEEK_END); written=FileWrite(handle,TimeToString(TimeCurrent())," ",AccountInfoDouble(ACCOUNT_EQUITY));//TimeToString(time[i]), PrintFormat("Equity FileWrite25 - OnCalculate(): Записано %d байт в общую папку всех терминалов - %s",written,common_folder); } else { Print("Equity FileWrite25 - OnCalculate(): Не удалось открыть файл ",filename,". Ошибка ",GetLastError()); } FileClose(handle); return rates_total; } void OnDeinit(const int reason){ FileClose(handle); } Валерий 2011.01.29 19:24 #2839 Voodoo_King:どうしたもん)注文時にどこに表示されるのですか?履歴」レポートについてですが、ポジションにはこれらの値があるのに、Stop Loss と Take Profit の欄には何も表示されません。ストップロスが設定されたかどうかを知るにはどうしたらいいのでしょうか? うまくいった場合はわかりますが、そうでない場合は? 履歴/注文」タブに表示されていますが、ストップがかかったときにサーバーがポジションを閉じる ために使用する、注文のストップロスとテイクプロフィットは何に相当するのでしょうか?注文のパラメータを正確に見ているのですね。 DV2010 2011.01.29 19:55 #2840 DV2010: 次のような疑問があります。 タスクは、テストフェーズでEquity値を特定のファイルに書き込み、以前の値を消去することである。 しかし、ここで起こるのは次のようなことです。 1.OnInit()において、FileDelete()が存在しない場合、既存のものに加えて書き込まれる。 2.しかし、OnInit()のFileDelete()があると、OnCalculatde()のEquityレコードが同じにもかかわらず、結果のファイルが空になってしまうのです。 なぜそうなるのか、どうすれば回避できるのか。 そのコードを以下に示す。 テストモード検出の解答を得たが、経験主義的なところがあり、恥ずかしくなった (テスターの開始時刻をプログラムで取得し、そこから歴史の深みへとインデントし、実時間を切り離す機会を探そうとしました)。 が、残念ながら見つかりませんでした)。 if(rates_total - prev_calculated > 1 && rates_total - prev_calculated < 10000){ FileDelete(filename,FILE_COMMON); } ただ、全く性質の違う問題があって、テスト 期間を変更すると、テスト結果に応じた指標がなぜか消えてしまうのですが、その後に新しい期間のコンパイルをすると、テスターを実行すると表示されるのです。 バグ? 1...277278279280281282283284285286287288289290291...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ストップとTPはどのように設定するのですか?
最初にポジションを建ててから修正するのか、それともすぐに適切なSLとTPを指定するのか?
ビルド384です。履歴を見るときに、設定したストップロスやテイクプロフィットレベルの注文が表示されないのですが・・・。
オーダー設定時に「表示」されます。これは、サーバーがポジションを 閉じる際にストップを設定しないため、当然といえば当然です。
というような発見がありました。バグかどうかわからないが、バグに見える。以下のコードです。
テスターログに出力(1000円の保証金で)。
2011.01.28 20:06:48 Core 1 2010.01.04 00:56:00 0.07000000000000001
関数(NormalizeDouble)は7以降の0以外の数字を削除してはいけないのでしょうか?
フォームに解決策を見出したと思った。lot=floor((My_AccountInfo.MaxLotCheck(_Symbol,ORDER_TYPE_SELL,latest_price.ask)/10)*100)/100,
が、私も同じような結果になりました。何をすべきか - トレードクエリではどの程度重要か?
こんにちは。
ループの本体にComment関数を追加して、ループの実行状況のパーセンテージと他のいくつかの値を表示できるようにしました。この単純なアルゴリズムは、ループ本体での実行に5分(それ以上でないとしても)かかりましたが、32000本のバーの値(Close, High, Low, Open)を再計算しただけです。ループの実行中に配列が動的に増えていると訴えたが、そんなことはない。アルゴリズムのデバッグ後、Commentは削除されました - 計算は神頼みで行われるようになりました。
Comment機能は本当にプログラムの実行を 遅くするのでしょうか?率直に言って驚いています。
システム:Windows XP、Terminal 5.00.384。
こんにちは。
ループの本体にComment関数を追加して、ループの実行状況のパーセンテージと他のいくつかの値を表示できるようにしました。この単純なアルゴリズムは、ループ本体での実行に5分(それ以上でないとしても)かかりましたが、32000本のバーの値(Close, High, Low, Open)を再計算しただけです。ループの実行中に配列が動的に増えていると訴えたが、そんなことはない。アルゴリズムのデバッグ後、Commentは削除されました - 計算は神頼みで行われるようになりました。
Comment機能は本当にプログラムの実行を 遅くするのでしょうか?率直に言って驚いています。
システム:Windows XP、Terminal 5.00.384。
始値のみで Expert Advisorを実行すると、始値ではなく高値で売りポジションを建て、安値で決済されます。
なぜ、このようなことが起こるのでしょうか。
Expert Advisorは、Open[0]価格のみを使用してポジションのオープンとクローズのシグナルを検索します。 EventSetTimer(1)が使用されています。
注文時に出力される。サーバーがストップを使ってポジションをクローズした場合は利用できません。サーバーはポジションクローズ時にストップを設定しないため、当然のことですが。
どうしたの?)注文の際、どこに表示されるのですか?
履歴」レポートについてですが、ポジションにこれらの値があるにもかかわらず、ストップロスやテイクプロフィットの 欄に何も表示されないのですが。
ストップロスが設定されたかどうかを知るにはどうしたらいいのでしょうか?つまり、発動された場合は見ることができますが、そうでない場合はどうしたらいいのでしょうか?
次のような疑問があります。
タスクは、テストフェーズでEquity値を特定のファイルに書き込み、以前の値を消去することである。
しかし、ここで起こるのは次のようなことです。
1.OnInit()において、FileDelete() が存在しない場合、既存のものに加えて書き込まれる。
2.しかし、OnInit() の FileDelete() があると、OnCalculatde() で同じ Equity レコードがあるにもかかわらず、結果のファイルは空になってしまうのです。
なぜそうなるのか、どうすれば回避できるのか。
以下はそのコードです。
どうしたもん)注文時にどこに表示されるのですか?
履歴」レポートについてですが、ポジションにはこれらの値があるのに、Stop Loss と Take Profit の欄には何も表示されません。
ストップロスが設定されたかどうかを知るにはどうしたらいいのでしょうか? うまくいった場合はわかりますが、そうでない場合は?
次のような疑問があります。
タスクは、テストフェーズでEquity値を特定のファイルに書き込み、以前の値を消去することである。
しかし、ここで起こるのは次のようなことです。
1.OnInit()において、FileDelete()が存在しない場合、既存のものに加えて書き込まれる。
2.しかし、OnInit()のFileDelete()があると、OnCalculatde()のEquityレコードが同じにもかかわらず、結果のファイルが空になってしまうのです。
なぜそうなるのか、どうすれば回避できるのか。
そのコードを以下に示す。
テストモード検出の解答を得たが、経験主義的なところがあり、恥ずかしくなった
(テスターの開始時刻をプログラムで取得し、そこから歴史の深みへとインデントし、実時間を切り離す機会を探そうとしました)。
が、残念ながら見つかりませんでした)。
ただ、全く性質の違う問題があって、テスト 期間を変更すると、テスト結果に応じた指標がなぜか消えてしまうのですが、その後に新しい期間のコンパイルをすると、テスターを実行すると表示されるのです。バグ?