MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1899 1...189218931894189518961897189818991900190119021903190419051906...1953 新しいコメント Mihail Matkovskij 2022.02.13 17:33 #18981 Valeriy Yastremskiy #:はい、私の場合、ゼロバーではなく、1本目から始めなければなりません)とは、いいことですね。 なぜかというと、ゼロバーが他のバーと一緒に左側に移動してしまうからです。そして、ゼロ以外のバーをすべてずらすと、1番目と2番目のインデックスで2つの等しい値が得られることになります。 追伸:データをシフトする場合、空きセルは必ず上書きしなければならない。そうでない場合は、同じ値が2つ並ぶことになります。 Mihail Matkovskij 2022.02.13 17:35 #18982 Valeriy Yastremskiy #:ZZZY シフト前のゼロの値を上書きすると、ゼロインデックスの値を失います。 まさにその通りです。 JRandomTrader 2022.02.13 17:48 #18983 Valeriy Yastremskiy #:μlのリングバッファーとは のようなものです。 static int head=0; for(i=head,count=0;count<ArraySize(A);i++,count++) { if(i>=ArraySize(A))i=0; DoSomething(A[i]); } いやしくも static int head=0; for(i=head,count=0;count<ArraySize(A);count++) { if(++i>=ArraySize(A))i=0; DoSomething(A[i]); } Valeriy Yastremskiy 2022.02.13 17:55 #18984 JRandomTrader #:みたいな感じ。いやしくも 配列のインデックスシフト量(μl)。動作するはずですが。ついでに言うと、指数変化サイクル(これはサイクルです)と課題サイクルの重さはあまり変わらないはずです。 Alexey Viktorov 2022.02.13 18:21 #18985 Vitaly Muzichenko #:これの使い方、教えてください。これが課題です。 完成したコードはこんな感じですが、ループがちょっと怖いですね。 ---繰り返しますが、ArrayCopy() の内部にはループがあり、おそらく複数のループが存在します。そのため、この置き換えによってコードが単純化・高速化されることはほとんどありません。 このコードでは、1つの配列を指定する必要があります。 int ArrayCopy( void& dst_array[], // куда копируем const void& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY // сколько элементов ); どのインデックスから書き込み、どのインデックスからコピーするかは、配列のシフト方向に依存します。したがって、インデックス0に常に新しいデータを格納したい場合は、0からコピーし、1から書き込むことになります。したがって、インデックス0と1の値は同一になり、その後、新しい値が0にコピーされることになります。 また、ArrayCopy()の内部がユーザーと同じループになっているかは非常に疑問です。このように、あるサイズの配列を持っていると、毎ティックごとに1ずつシフトして、行として表示されるインジケータ・バッファにコピーされる...。 EVGENII SHELIPOV 2022.02.13 18:37 #18986 デイリーファクトの内訳関数を教えてください。 //+----------------------------------------------------------------------------+ //|Определение пробоя дневного фрактала вверх | //+----------------------------------------------------------------------------+ int BreakdownSignalUpD1() { int sig=-1; double resistD1 = GetNearestUpFractal(PERIOD_D1); if (resistD1 < Ask) sig=0; if (resistD1 >= Ask) sig=1; return(sig); }そして、その内訳を画面に表示する機能は以下の通りです。ObjectCreate("signal100",OBJ_LABEL,0,0,0,0,0); ObjectSet("signal100",OBJPROP_XDISTANCE,600); ObjectSet("signal00",OBJPROP_YDISTANCE, 40); ObjectSetText("signal100",DoubleToString(BreakdownSignalUpD1(),0),18,"Times New Roman", clrRed);0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。ありがとうございました。 Mihail Matkovskij 2022.02.13 18:49 #18987 EVGENII SHELIPOV #: デイリーファクトの内訳関数を教えてください。 そして、その内訳を画面に表示する機能は以下の通りです。0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。ありがとうございました。 string boolToStr(bool value) { return ((value) ? "true" : "false"); } JRandomTrader 2022.02.13 18:51 #18988 EVGENII SHELIPOV #: 日中ファクトリーの内訳機能を教えてください。 そして、その内訳を画面に表示する機能は以下の通りです。0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。ありがとうございました。 ObjectSetText("signal100",BreakdownSignalUpD1()==0?"Да":"Нет",18,"Times New Roman", clrRed); こんな感じ。 EVGENII SHELIPOV 2022.02.13 19:01 #18989 JRandomTrader #:そんな感じです。 ありがとうございました。 Vitaly Muzichenko 2022.02.13 19:14 #18990 Alexey Viktorov #:このコードでは、1つの配列を指定する必要があります。どのインデックスから書き込み、どのインデックスをコピーするかは、配列のオフセット方向に依存します。つまり、インデックス0に常に新しいデータを格納するのであれば、0からコピーし、1から書き込む。したがって、インデックス0と1の値は同一となり、その後、0に新しい値がコピーされます。また、ArrayCopy()の内部がユーザーと同じループになっているかは非常に疑問です。このように、あるサイズの配列を持っていると、毎ティックごとに1ずつシフトして、行として表示されるインジケータ・バッファにコピーされる...というわけです。 やってみます。 --- 全体として、私のコードは正常に動作しています、それは1時間以上です 1...189218931894189518961897189818991900190119021903190419051906...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
はい、私の場合、ゼロバーではなく、1本目から始めなければなりません)とは、いいことですね。
なぜかというと、ゼロバーが他のバーと一緒に左側に移動してしまうからです。そして、ゼロ以外のバーをすべてずらすと、1番目と2番目のインデックスで2つの等しい値が得られることになります。
追伸:データをシフトする場合、空きセルは必ず上書きしなければならない。そうでない場合は、同じ値が2つ並ぶことになります。
ZZZY シフト前のゼロの値を上書きすると、ゼロインデックスの値を失います。
まさにその通りです。
μlのリングバッファーとは
のようなものです。
いやしくも
みたいな感じ。
いやしくも
配列のインデックスシフト量(μl)。動作するはずですが。ついでに言うと、指数変化サイクル(これはサイクルです)と課題サイクルの重さはあまり変わらないはずです。
これの使い方、教えてください。
これが課題です。
完成したコードはこんな感じですが、ループがちょっと怖いですね。
---
繰り返しますが、ArrayCopy() の内部にはループがあり、おそらく複数のループが存在します。そのため、この置き換えによってコードが単純化・高速化されることはほとんどありません。
このコードでは、1つの配列を指定する必要があります。
どのインデックスから書き込み、どのインデックスからコピーするかは、配列のシフト方向に依存します。したがって、インデックス0に常に新しいデータを格納したい場合は、0からコピーし、1から書き込むことになります。したがって、インデックス0と1の値は同一になり、その後、新しい値が0にコピーされることになります。
また、ArrayCopy()の内部がユーザーと同じループになっているかは非常に疑問です。このように、あるサイズの配列を持っていると、毎ティックごとに1ずつシフトして、行として表示されるインジケータ・バッファにコピーされる...。
そして、その内訳を画面に表示する機能は以下の通りです。
0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。
ありがとうございました。
デイリーファクトの内訳関数を教えてください。
そして、その内訳を画面に表示する機能は以下の通りです。
0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。
ありがとうございました。
日中ファクトリーの内訳機能を教えてください。
そして、その内訳を画面に表示する機能は以下の通りです。
0か1かではなく、0が "YES" 1が "NO "と表示させる方法を教えてください。
ありがとうございました。
こんな感じ。
そんな感じです。
ありがとうございました。
このコードでは、1つの配列を指定する必要があります。
どのインデックスから書き込み、どのインデックスをコピーするかは、配列のオフセット方向に依存します。つまり、インデックス0に常に新しいデータを格納するのであれば、0からコピーし、1から書き込む。したがって、インデックス0と1の値は同一となり、その後、0に新しい値がコピーされます。
また、ArrayCopy()の内部がユーザーと同じループになっているかは非常に疑問です。このように、あるサイズの配列を持っていると、毎ティックごとに1ずつシフトして、行として表示されるインジケータ・バッファにコピーされる...というわけです。
やってみます。
---
全体として、私のコードは正常に動作しています、それは1時間以上です