[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 181 1...174175176177178179180181182183184185186187188...432 新しいコメント Sergey Diubakin 2013.02.26 10:08 #1801 Activict:こんにちは。そんな疑問があります。このインジケータは、他のExpert AdvisorやInductorのコードの断片を、私自身のニーズに合わせて苦労して再設計しました。大きなコードではないので、思い通りに動作します。問題は、内部で何らかの計算を行い、チャート上に上下の矢印を表示することです。チャート上に矢印が表示されたときに、正しい方向に注文を出すExpert Advisorの作り方を教えてください。正確には、どの矢印が現在アクティブかを知るだけで、あとは自分でできると思います。以下は、分かりやすくするためのコードの一部で、インジケータでの初期化です。 SetIndexBuffer(1, Vverh); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,233); SetIndexBuffer(2,Vniz); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,234); 皆さん、よろしくお願いします。Expert Advisorに必要なカスタムインジケータの 値を受け取るには、内蔵のiCustom機能を使用します。 double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)例えば、最後に完全に形成されたバー上に上向きや下向きの矢印があるかどうかを知る必要があります。double Up=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 1, 1); // стрелка вверх double Dw=iCustom(NULL, 0, name/* название индикатора */, /* настраиваемые параметры индикатора через запятую */, 2, 1); // стрелка вниз Maksim Paulau 2013.02.26 10:32 #1802 返信ありがとうございましたそうですね、矢印が消えてしまうことがありますね。このメソッドは、矢印が消えたら "0 "を読むのでしょうか?そして、矢印は、新興のバー上にのみ描画され、前のバーは、それが再描画されません、発生の瞬間にそれは取引を開く必要があり、それぞれ矢印が消えた場合は、閉じます。 mikhail12 2013.02.26 10:59 #1803 プログラムコードを用いて、EAが通常よりも頻繁にサーバーにリクエストを送るようにする方法はありますか?だから、1つではなく2つの要求があるように、またはそのためにちょうどプログラムシェルを繰り返すことができます...。1回のリクエストではなく3回のリクエストなら、2回繰り返す・・・?? Sergey Diubakin 2013.02.26 11:14 #1804 Activict:そうですね、矢印が消えてしまうことがありますね。この方法をカスタマイズして、矢印が消えたら'0'と読むのでしょうか? はい、そうなります。アクティヴィクトそして、矢印は、形成バー上にのみ描画され、前のバーは、それが再描画されません、発生の瞬間にそれは矢印が消えた場合は、位置を開き、それぞれする必要がありますその後閉じます その結果、矢印が完全に形成されたバーのいずれかにある場合、矢印はもはや消えることはありません。矢印は、現在のバー上に何度も現れたり消えたりすることができます。 Alexey Subbotin 2013.02.26 11:57 #1805 アクティヴィクトспасибо за ответ! Да стрелки иногда пропадают. Этот способ через кастом будет считывать "0" если стрелка пропадет? インジケーターのコードで "empty "と指定されている値は、iCustomで考慮されます。原則として、0 または EMPTY_VALUE とする。 インジケータではEMPTY_VALUEがデフォルトですが、init()にSetIndexEmptyValueを 入れると、また違った意味になります。 Viktar Dzemikhau 2013.02.26 13:06 #1806 yellownight: プログラムコードを用いて、EAが通常よりも頻繁にサーバーにリクエストを送るようにする方法はありますか?1つの要求の代わりに2つの要求があるように、またはそのためにちょうどプログラムシェルを繰り返すことができます ...1回のリクエストではなく3回のリクエストなら、2回繰り返す・・・?? これでは何の意味もありません。サーバーに大量のリクエストを送ると、あなたのアカウントが無効になることがあります。これは、「リクエストをやりすぎて」サーバーを「爆撃」してしまう人に起こることですね。 Viktar Dzemikhau 2013.02.26 13:13 #1807 簡単なインジケータを書きました。以下はそのコードです。//+------------------------------------------------------------------+ //| AngleByLineFromMA.mq4 | //| hoz | //| | //+------------------------------------------------------------------+ #property copyright "hoz" #property link "" extern string h1 = "основные параметры машки"; extern int maTF = 0; extern int maPeriod = 50; extern int maShiftByPrice = 0; extern int maMethod = 0; extern int maPrice = 0; extern int shiftBarsBack1 = 2; // Первое значение shift extern int shiftBarsBack2 = 7; // Второе значение shift extern string h2 = "==============================="; string h3 = "Другие переменные"; double pointOfMaFirst, // Первая тока (начало отрисовки отрезка) pointOfMaLast, // Вторая тока отрезка (конец отрисовки отрезка) varsAngle[1000]; // Буфер для хранения значение возвращаемых машкой #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //#property indicator_minimum -45 //#property indicator_maximum 45 //+------------------------------------------------------------------+ //| Функция инициализации индикатора | //+------------------------------------------------------------------+ int init() { IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); SetIndexBuffer(0,varsAngle); // Связываем массив значений угла с буфером SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2); // -------------- блок инициализации закончен ---------------------- return(0); } //+------------------------------------------------------------------+ //| Функция деинициализации индикатора | //+------------------------------------------------------------------+ int deinit() { ObjectsDeleteAll(); // Очистим график от всего // -------------- блок инициализации закончен ---------------------- return(0); } //+------------------------------------------------------------------+ //| Функция итерации эксперта | //+------------------------------------------------------------------+ int start() { int i, countedBars = IndicatorCounted(); int limit = Bars - countedBars; if (limit > 400) limit = 400; for(i = limit;i > 1;i--) { pointOfMaFirst = iMA(Symbol(),maTF,maPeriod,maShiftByPrice,maMethod,maPrice,shiftBarsBack1+i); // Начальная точка прямой pointOfMaLast = iMA(Symbol(),maTF,maPeriod,maShiftByPrice,maMethod,maPrice,shiftBarsBack2+i); // Крайняя точка прямой varsAngle[i] = pointOfMaFirst - pointOfMaLast; Print("varsAngle[i] = ", varsAngle[i]); } return(0); } バッファは1つしか入っていない。指標となる値はdouble 型である。Expert Advisorでは、インジケータの値を取得して、フィルタとしてトレードに適用することにしました。ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。//+-------------------------------------------------------------------------------------+ //| Получаем направление фильтрующей МА | //+-------------------------------------------------------------------------------------+ double GetSlopeOfMa() { double slope = iCustom(NULL, i_TF, "AngleByLineFromMA simplest", 0, 1); Print ("slope = ", slope); return(slope); } テスターのスロープ 値が正しくない。2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 16:57:26 2009.10.26 00:23 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。これはテスターからのログですが、実際の現在のマーケットからのログです。 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0009 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.001 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.001 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0011 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0011 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0011 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.0011 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.001 2013.02.26 16:57:05 AngleByLineFromMA simplest EURUSD,H1: varsAngle[i] = 0.001 なぜ、2147483647という 数字が常に返されるのですか? Sergey Diubakin 2013.02.26 13:21 #1808 hoz:簡単なインジケータを書きました。以下はそのコードです。 バッファは1つだけです。指標となる数値はダブル タイプである。Expert Advisorでは、インジケーターの値を取得し、フィルターとしてトレードに適用することにしました。ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。 テスターで返されるスロープの 値が正しくない。なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。テスターでのログ記録と、実際の現在の市場からのログをご紹介します。なぜ、2147483647という 数字が常に返されるのですか?作業開始時のテスターでは、インジケータを 正しく計算 するための十分なバーが履歴に残っていません。//+-------------------------------------------------------------------------------------+ //| Получаем направление фильтрующей МА | //+-------------------------------------------------------------------------------------+ double GetSlopeOfMa() { if(iBars(NULL, i_TF)<maPeriod) { Print("Недостаточно баров в истории для корректного расчёта значений индикатора!"); return(-1.0); } double slope = iCustom(NULL, i_TF, "AngleByLineFromMA simplest", 0, 1); Print ("slope = ", slope); return(slope); } Viktar Dzemikhau 2013.02.26 13:45 #1809 //+-------------------------------------------------------------------------------------+ //| Получаем направление фильтрующей МА | //+-------------------------------------------------------------------------------------+ double GetSlopeOfMa() { if(iBars(NULL, i_TF) < maPeriod) { Print("Недостаточно баров в истории для корректного расчёта значений индикатора!"); return(0); } double slope = iCustom(NULL, i_TF, "AngleByLineFromMA simplest", 0, 1); Print ("slope = ", slope); Print ("iBars(NULL, i_TF) = ", iBars(NULL, i_TF)); return(slope); }2007年からデューカスコピーからストーリーをダウンロードしたのですが・・・。バーが少ないわけがない。MA期は50のみ。あなたの行を貼り付けましたが、return(0) ...を修正し、チャートのバーの 数の出力を追加しました。 このログで2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 Victor Nikolaev 2013.02.26 13:59 #1810 hoz:2007年からデューカスコピーからストーリーをダウンロードしたのですが・・・。バーが少ないわけがない。MA期は50のみ。以下は、あなたの行ですが、return(0)を修正しました.これがログに残っています。 インジケーターに問題があるようです if (limit > 400) limit = 400; 1...174175176177178179180181182183184185186187188...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。そんな疑問があります。
このインジケータは、他のExpert AdvisorやInductorのコードの断片を、私自身のニーズに合わせて苦労して再設計しました。大きなコードではないので、思い通りに動作します。
問題は、内部で何らかの計算を行い、チャート上に上下の矢印を表示することです。
チャート上に矢印が表示されたときに、正しい方向に注文を出すExpert Advisorの作り方を教えてください。
正確には、どの矢印が現在アクティブかを知るだけで、あとは自分でできると思います。
以下は、分かりやすくするためのコードの一部で、インジケータでの初期化です。
SetIndexBuffer(1, Vverh);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,233);
SetIndexBuffer(2,Vniz);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,234);
皆さん、よろしくお願いします。
Expert Advisorに必要なカスタムインジケータの 値を受け取るには、内蔵のiCustom機能を使用します。
例えば、最後に完全に形成されたバー上に上向きや下向きの矢印があるかどうかを知る必要があります。
返信ありがとうございましたそうですね、矢印が消えてしまうことがありますね。このメソッドは、矢印が消えたら "0 "を読むのでしょうか?
そして、矢印は、新興のバー上にのみ描画され、前のバーは、それが再描画されません、発生の瞬間にそれは取引を開く必要があり、それぞれ矢印が消えた場合は、閉じます。
そうですね、矢印が消えてしまうことがありますね。この方法をカスタマイズして、矢印が消えたら'0'と読むのでしょうか?
はい、そうなります。
そして、矢印は、形成バー上にのみ描画され、前のバーは、それが再描画されません、発生の瞬間にそれは矢印が消えた場合は、位置を開き、それぞれする必要がありますその後閉じます
спасибо за ответ! Да стрелки иногда пропадают. Этот способ через кастом будет считывать "0" если стрелка пропадет?
インジケーターのコードで "empty "と指定されている値は、iCustomで考慮されます。原則として、0 または EMPTY_VALUE とする。
インジケータではEMPTY_VALUEがデフォルトですが、init()にSetIndexEmptyValueを 入れると、また違った意味になります。
プログラムコードを用いて、EAが通常よりも頻繁にサーバーにリクエストを送るようにする方法はありますか?1つの要求の代わりに2つの要求があるように、またはそのためにちょうどプログラムシェルを繰り返すことができます ...1回のリクエストではなく3回のリクエストなら、2回繰り返す・・・??
簡単なインジケータを書きました。以下はそのコードです。
バッファは1つしか入っていない。指標となる値はdouble 型である。Expert Advisorでは、インジケータの値を取得して、フィルタとしてトレードに適用することにしました。
ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。
テスターのスロープ 値が正しくない。なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。これはテスターからのログですが、実際の現在のマーケットからのログです。
なぜ、2147483647という 数字が常に返されるのですか?
簡単なインジケータを書きました。以下はそのコードです。
バッファは1つだけです。指標となる数値はダブル タイプである。Expert Advisorでは、インジケーターの値を取得し、フィルターとしてトレードに適用することにしました。
ここでは、最後に形成されたバーで、このインジケータのバッファの簡単な関数コールを書きました。
テスターで返されるスロープの 値が正しくない。なぜ?タイプは正しいです。通話も正しい。インジケーターは全く正常に動作しています。テスターでのログ記録と、実際の現在の市場からのログをご紹介します。
なぜ、2147483647という 数字が常に返されるのですか?
作業開始時のテスターでは、インジケータを 正しく計算 するための十分なバーが履歴に残っていません。
2007年からデューカスコピーからストーリーをダウンロードしたのですが・・・。バーが少ないわけがない。MA期は50のみ。
あなたの行を貼り付けましたが、return(0) ...を修正し、チャートのバーの 数の出力を追加しました。
このログで
2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: iBars(NULL, i_TF) = 15895 2013.02.26 17:53:26 2009.10.26 00:22 D_Aleks_first_pattern EURUSD,H1: slope = 2147483647
2007年からデューカスコピーからストーリーをダウンロードしたのですが・・・。バーが少ないわけがない。MA期は50のみ。
以下は、あなたの行ですが、return(0)を修正しました.
これがログに残っています。
インジケーターに問題があるようです