MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 696 1...689690691692693694695696697698699700701702703...1953 新しいコメント Artyom Trishkin 2018.11.19 05:58 #6951 Northwest:1.すべて元に戻し、コンピュータを拷問しない ように。申し訳ありませんが、それはできません。インジケータは左から右に数える必要があります。迷惑をかけず、本来の用途で使っています。2.iBandsOnArray, iStdDevOnArray は、配列に格納されたデータを用いて算出される。はい、bbMacd[]配列のデータを使って計算されていますね。3.1ループで配列が埋まる。1では、それとも1では?1つの配列を埋めるために、この配列が満たされる個人ループが必要だと言っているのでしょうか? が満たされ、他の操作ができなくなるのでは?なぜインジケータが遅くなるのか、その場所をどう計算するのかが重要なんです。質問は増えるが、答えはない。残念ながら、あなたは何の手がかりも示していない。配列を使用して何かを構築する場合、既に存在する配列を使用して構築する必要があります。これは配列の準備の1サイクルと、この配列によるインジケータの描画の2サイクル目である。これは一般的なケースです。例えば、計算された1つのバーのみから値を返す関数を作成することができます。 //+------------------------------------------------------------------+ //| BandsOnArray | //+------------------------------------------------------------------+ double BandsOnArray(const int rates_total,const int index,const int period,const double deviation_bb,const double &array[],const int line,const bool as_series=true) { //--- check position bool check_index=(as_series ? index<=rates_total-period-1 : index>=period-1); if(period<1 || !check_index) return 0; //--- calculate StdDev double dev=StdDevOnArray(rates_total,index,period,array); //--- base line double mid=0; for(int i=0; i<period; i++) mid+=array[index+i]; mid/=period; //--- upper line double top=mid+dev*deviation_bb; //--- lower line double btm=mid-dev*deviation_bb; return(line==UPPER_BAND ? top : line==LOWER_BAND ? btm : mid); } //+------------------------------------------------------------------+ //| StdDevOnArray | //+------------------------------------------------------------------+ double StdDevOnArray(const int rates_total,const int index,const int period,const double &array[],const bool as_series=true) { //--- check position bool check_index=(as_series ? index<=rates_total-period-1 : index>=period-1); if(period<1 || !check_index) return 0; //--- calculate value double avg=0; for(int i=0; i<period; i++) avg+=array[index+i]; avg/=period; double sd=0; for(int i=0; i<period; i++) sd+=(avg-array[index+i])*(avg-array[index+i]); return(sqrt(sd/period)); } //+------------------------------------------------------------------+ ただし、StdDevOnArrayとBandsOnArrayはSimple-smoothingを 使用しており、Period smoothingの値と同じ充填データが必要なため、入力として既に用意されているデータ配列も必要である。 psyman 2018.11.19 09:37 #6952 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MQL4初心者のための質問、アルゴリズムやコードに関するヘルプとディスカッション アルチョム・トリシキン さん 2018.11.18 20:21 PlotIndexSetInteger(0,PLOT_ARROW,140); ただし、週数と同じ数のバッファを作成 する必要があります。そして、それぞれのバッファには、140から149までのアローコード(1,2,3,4,5,6,7,8,9,10)を与えなければならないのですが、10週で1年間分ですか?たった70日のことだ。それとも、どうしたかったのでしょうか? SetIndexArrowをケースでオーバーライドすることは可能ですか? せめてヒストグラムで数値を表示するとか? トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MQL4初心者の質問、ヘルプ、アルゴリズムやコードに関するディスカッションなど何でもOK アルチョム・トリシキン さん 2018.11.18 20:02 バッファには、1時間分の値が格納される。また、時分が0であればヒストグラムは描画されません。そこで、時間がゼロであるかどうかを確認し(設定でゼロ時間を検索するように設定しています)、ゼロであれば、時間の値(ゼロ)の代わりに0.1をバッファに入力する必要があります - ヒストグラムの列を表示するためです。これは、インジケータDigitsが0に設定 されているため、データウィンドウに0.1ではなく、0という値が表示されます。 今、わかりました、ありがとうございます。 Artyom Trishkin 2018.11.19 09:50 #6953 psyman: SetIndexArrowはケースで上書きできますか? せめて棒グラフで数字を表示するとか? 今、わかりました、ありがとうございます。 バッファ 全体に一度に作用します。 ファウンドバーに週番号のアイコンを置いて、そこに1年の週番号を表示させる必要があります。Wingdingsでは、数字の矢印が明らかに欠けています。 オブジェクトテキストでターンアウトし、週番号の値でバーをマークすることは可能ですが、バッファのアイコンを32に設定します - 空文字です。値はバー上に表示されますが、表示されません。そして、値はその年の週番号にすることができ、オブジェクトには好きなことを書けば、そのオブジェクトは見つかったバーに表示されます。 psyman 2018.11.19 10:31 #6954 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MQL4に関する初心者向けの質問、アルゴリズムやコードに関するヘルプやディスカッションなど アルチョム・トリシキン さん 2018.11.19 10:50 AM バッファ 全体に一度に作用します。 ファウンドバーに週番号のアイコ ンをつけて、そこに1年の週番号を表示させる必要があります。Wingdingsでは、数字の矢印が明らかに欠けています。 あなたは、オブジェクト-テキストを使用して、週の数の値を持つバーをマークすることによって得ることができますが、32を設定するバッファのためのアイコン - 空の文字。値はバー上に表示されますが、表示されません。そして、値はその年の週番号にすることができ、オブジェクトには好きなことを書けば、そのオブジェクトは見つかったバーに表示されます。月、火、水という曜日を書きましたが、数字ではありません。チャートのマークは5種類でOKです。 Artyom Trishkin 2018.11.19 11:19 #6955 psyman:月、火、水という曜日を書きましたが、数字ではありません。チャートのマークは5種類あればいい。そうすると、5つのバッファが必要で、それぞれに140から144までの異なるアローナンバーを割り当てることになりますね。 Northwest 2018.11.19 14:05 #6956 Artyom Trishkin:配列を使用して何かを構築する場合、既に用意されている配列を使用して構築する必要があります。そして、これが配列の準備の1サイクルであり、この配列によるインジケータの描画の2サイクル目である。これは一般的なケースです。例えば、計算された1つのバーのみから値を返す関数を作成することができます。 ただし、StdDevOnArrayとBandsOnArrayはSimple-smoothingを 使用しており、Period smoothingの値と同じ充填データが必要なため、入力として既に用意されているデータ配列も必要である。 状況を明確にしていただき、ありがとうございます。 Andrei Sokolov 2018.11.19 16:19 #6957 こんにちわ 手動で取引を確認/キャンセルするためのボタンが付いたポップアップウィンドウを作成するにはどうすればよいですか? Artyom Trishkin 2018.11.19 16:32 #6958 Andrey Sokolov:こんにちわ 手動で取引を確認/キャンセルするためのボタンが付いたポップアップウィンドウを作成するにはどうすればよいですか?メッセージボックス() Andrei Sokolov 2018.11.20 09:08 #6959 Artyom Trishkin:メッセージボックス()感謝 FEEX 2018.11.20 15:08 #6960 皆さん、こんにちは。 テスターのように最大ドローダウンの割合を求めるにはどうしたらよいですか? 以下はそのコードです。 double MaxPeak,DD, MaxDD, DD2, MaxDD2; -------------------------------------- -------------------------------------- это вывод: SM("Maximal drawdown : " + DoubleToString(MaxDrawdown_Money(), 2)+ " (" + DoubleToString(MaxDrawdown_Protsent(), 2) +" %)"); ------------------------------------- ------------------------------------- //--------------------Рассчет % относительной просадки---------- double MaxDrawdown_Protsent() { if (AccountEquity() > MaxPeak) { MaxPeak = AccountEquity(); } if (AccountEquity() < MaxPeak) { DD2 = NormalizeDouble((MaxPeak - AccountEquity())/MaxPeak*100,2); } if (MaxDD2< DD2) { MaxDD2 = DD2; } return (MaxDD2); } //---------------------Рассчет суммы максимальной просадки-------- double MaxDrawdown_Money() { if (AccountEquity() > MaxPeak) { MaxPeak = AccountEquity(); } if (AccountEquity() < MaxPeak) { DD = NormalizeDouble(MaxPeak - AccountEquity(),2); } if (MaxDD< DD) { MaxDD = DD; } return (MaxDD); } 最大ドローダウンの量はテスターと同じ、相対ドローダウンの割合もテスターと同じです。 テスターの ように最大ドローダウンのパーセンテージを得るにはどうしたらいいですか? 1...689690691692693694695696697698699700701702703...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
1.すべて元に戻し、コンピュータを拷問しない ように。
申し訳ありませんが、それはできません。インジケータは左から右に数える必要があります。
迷惑をかけず、本来の用途で使っています。
2.iBandsOnArray, iStdDevOnArray は、配列に格納されたデータを用いて算出される。
はい、bbMacd[]配列のデータを使って計算されていますね。
3.1ループで配列が埋まる。
1では、それとも1では?
1つの配列を埋めるために、この配列が満たされる個人ループが必要だと言っているのでしょうか?
が満たされ、他の操作ができなくなるのでは?
なぜインジケータが遅くなるのか、その場所をどう計算するのかが重要なんです。
質問は増えるが、答えはない。
残念ながら、あなたは何の手がかりも示していない。
配列を使用して何かを構築する場合、既に存在する配列を使用して構築する必要があります。これは配列の準備の1サイクルと、この配列によるインジケータの描画の2サイクル目である。これは一般的なケースです。例えば、計算された1つのバーのみから値を返す関数を作成することができます。
ただし、StdDevOnArrayとBandsOnArrayはSimple-smoothingを 使用しており、Period smoothingの値と同じ充填データが必要なため、入力として既に用意されているデータ配列も必要である。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4初心者のための質問、アルゴリズムやコードに関するヘルプとディスカッション
アルチョム・トリシキン さん 2018.11.18 20:21
PlotIndexSetInteger(0,PLOT_ARROW,140);
ただし、週数と同じ数のバッファを作成 する必要があります。そして、それぞれのバッファには、140から149までのアローコード(1,2,3,4,5,6,7,8,9,10)を与えなければならないのですが、10週で1年間分ですか?たった70日のことだ。それとも、どうしたかったのでしょうか?
SetIndexArrowをケースでオーバーライドすることは可能ですか?
せめてヒストグラムで数値を表示するとか?
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4初心者の質問、ヘルプ、アルゴリズムやコードに関するディスカッションなど何でもOK
アルチョム・トリシキン さん 2018.11.18 20:02
バッファには、1時間分の値が格納される。また、時分が0であればヒストグラムは描画されません。そこで、時間がゼロであるかどうかを確認し(設定でゼロ時間を検索するように設定しています)、ゼロであれば、時間の値(ゼロ)の代わりに0.1をバッファに入力する必要があります - ヒストグラムの列を表示するためです。これは、インジケータDigitsが0に設定 されているため、データウィンドウに0.1ではなく、0という値が表示されます。
今、わかりました、ありがとうございます。
SetIndexArrowはケースで上書きできますか?
せめて棒グラフで数字を表示するとか?
今、わかりました、ありがとうございます。
バッファ 全体に一度に作用します。
ファウンドバーに週番号のアイコンを置いて、そこに1年の週番号を表示させる必要があります。Wingdingsでは、数字の矢印が明らかに欠けています。
オブジェクトテキストでターンアウトし、週番号の値でバーをマークすることは可能ですが、バッファのアイコンを32に設定します - 空文字です。値はバー上に表示されますが、表示されません。そして、値はその年の週番号にすることができ、オブジェクトには好きなことを書けば、そのオブジェクトは見つかったバーに表示されます。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4に関する初心者向けの質問、アルゴリズムやコードに関するヘルプやディスカッションなど
アルチョム・トリシキン さん 2018.11.19 10:50 AM
バッファ 全体に一度に作用します。
ファウンドバーに週番号のアイコ ンをつけて、そこに1年の週番号を表示させる必要があります。Wingdingsでは、数字の矢印が明らかに欠けています。
あなたは、オブジェクト-テキストを使用して、週の数の値を持つバーをマークすることによって得ることができますが、32を設定するバッファのためのアイコン - 空の文字。値はバー上に表示されますが、表示されません。そして、値はその年の週番号にすることができ、オブジェクトには好きなことを書けば、そのオブジェクトは見つかったバーに表示されます。
月、火、水という曜日を書きましたが、数字ではありません。チャートのマークは5種類でOKです。
月、火、水という曜日を書きましたが、数字ではありません。チャートのマークは5種類あればいい。
そうすると、5つのバッファが必要で、それぞれに140から144までの異なるアローナンバーを割り当てることになりますね。
配列を使用して何かを構築する場合、既に用意されている配列を使用して構築する必要があります。そして、これが配列の準備の1サイクルであり、この配列によるインジケータの描画の2サイクル目である。これは一般的なケースです。例えば、計算された1つのバーのみから値を返す関数を作成することができます。
ただし、StdDevOnArrayとBandsOnArrayはSimple-smoothingを 使用しており、Period smoothingの値と同じ充填データが必要なため、入力として既に用意されているデータ配列も必要である。
こんにちわ
手動で取引を確認/キャンセルするためのボタンが付いたポップアップウィンドウを作成するにはどうすればよいですか?
こんにちわ
手動で取引を確認/キャンセルするためのボタンが付いたポップアップウィンドウを作成するにはどうすればよいですか?
メッセージボックス()
感謝
皆さん、こんにちは。
テスターのように最大ドローダウンの割合を求めるにはどうしたらよいですか?
以下はそのコードです。
最大ドローダウンの量はテスターと同じ、相対ドローダウンの割合もテスターと同じです。
テスターの ように最大ドローダウンのパーセンテージを得るにはどうしたらいいですか?