KimIVの便利な機能 - ページ 46 1...394041424344454647484950515253...128 新しいコメント Комарских Александр 2008.09.09 04:01 #451 SK. писал (а)>> そういうことなんです。既存の制約を考慮しなければなりませんが、一般的に言って、制約は常に変化しています。 可能な限りの制約を解析する関数はありますか? 改造も同様です。 -- (私は、各 good order (OP,SL,TP) に対して3つ、各 market order (SL,TP) に対して2つの合計16の関数を持っています。 そして、許可証の組み合わせを分析するいくつかの関数があります)。 そうですね、私は、可能な限りの制限をチェックするオーダー設定用の関数と、修正用の関数(最初の関数に一部似ています)も別に持っています。しかし、一般的には、実際の取引のExpert Advisorでは、それなしでは困難です。:-) Сергей Ковалев 2008.09.09 08:50 #452 Shu писал (а)>> そう、私は注文を設定するための別の関数を持っていて、それは可能な限りの制限をチェックし、修正のための別の関数(最初の関数と一部似ている)も持っています。 私はあなたにコードを与えることはありません - 私だけが必要とする、非常に多くの "左" トリックがあります - 痛いです。しかし、一般的には、実際の取引のExpert Advisorでは、それなしでは困難です。:-) 実は、すべてを考慮に入れているかどうか、自分で確認したかったのです。チェックしないと、バウンスの連続に遭遇する可能性があります(時にはアクセス禁止になる可能性もあります)。 私のチェックを簡単に列挙します。 1)StopLevel。例えば、SL BuyStopを修正する場合。 距離だけを確認するのではありません。StopLevelの現在の位置とストップオーダーの動きの方向性を分析する必要があります。 SLがStopLevelの回廊の外にある場合、近くに移動するか、無期限に移動させることができます。 SLがコリドー内にある場合、上方への移動は拒否されます。距離コリドー内の変更距離を3pとし、コリドーを30pとした場合、実際に実行を許可する値はStopLevelコリドー境界で定義されるため、ダウン動作は受け入れられるが、StopLevelを考慮する。 2)FreezeLevel。 3. StopLevelとTICKSIZEの比率。注文がすべての通路の外側にある可能性がありますが、TICKSIZEの倍数ではない - それは問題です。修正方向に向かって丸みを帯びる必要があります。非通貨」に対してクリティカル。 4.ロットです。 ミンロート +/- ミンロートパーシャルクロージャーとカウンタークロージャーもみんロクに限定されていることを考慮してください(私見では非論理的ですが、そういうことです)。 パーソナルチェックの後、各チェックがポジティブに終了した場合(禁止事項なし)、オーダーが発行されます。 Igor Kim 2008.09.09 14:39 #453 機能ライブラリの完全公開。 b-Graphics.rar - グラフィカルなオブジェクトを 扱うことができます。 b-Indicators.rar - インジケータを使用した作業。 Igor Kim 2008.09.10 03:30 #454 ArrayLR()関数です。 この関数は、線形回帰の値の配列を生成します。この関数は、以下の必須パラメータを受け付ける。 x は数値系列の値の配列である。入力パラメータです。この配列は、関数が呼ばれる前の値を含んでいなければなりません。 y は線形回帰の値の配列である。これは出力パラメータです.つまり,関数が実行された後に,この配列が埋められます. //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 20.05.2008 | //| Описание : Формирует массив значений линейной регрессии. | //+----------------------------------------------------------------------------+ //| Параметры: | //| x - массив значений числового ряда | //| y - массив значений линейной регрессии | //+----------------------------------------------------------------------------+ void ArrayLR(double& x[], double& y[]) { double a, b, c, sx=0, sx2=0, sxy=0, sy=0; int i, n=ArraySize(x); if (n>1) { for (i=0; i<n; i++) { sx+=i+1; sy+=x[i]; sxy+=(i+1)*x[i]; sx2+=(i+1)*(i+1); } a=sx*sy-n*sxy; c=sx*sx-n*sx2; if (c!=0) a=a/c; else a=0; b=(sy-a*sx)/n; ArrayResize(y, n); for (i=0; i<n; i++) y[i]=a*(i+1)+b; } else Print("ArrayLR(): Недостаточное количество элементов ряда! n=", n); } Igor Kim 2008.09.10 03:37 #455 ArrayLR()関数の使用例です。 過去30バーの線形回帰の 価格水準をマークしてみましょう。 #define r 30 double x[r], y[]; for (int i=0; i<r; i++) x[i]=Close[i+1]; ArrayLR(x, y); for (i=0; i<r; i++) SetArrow(170, Red, "arr"+i, Time[i+1], y[i]); P.S. ArrayLR()関数をテストするスクリプトを添付します。 ファイル: test_arraylr.mq4 4 kb Rid 2008.09.10 05:24 #456 KimIV писал (а)>> 機能ライブラリの完全公開。 b-Graphics.rar - グラフィカルなオブジェクトを 扱うことができます。 b-Indicators.rar - インジケータを使用した作業。 とてもクールです。>> ありがとうございました Parabellum 2008.09.10 06:07 #457 Parabellum писал (а)>> Igorさん、複数のローソク足を1つにまとめることができる良いインジケーターが ありますよ。しかし、それは1時間足チャートでしか機能しません。ユニバーサルにすることは可能ですか? ありがとうございます。 ? Igor Kim 2008.09.10 06:23 #458 Parabellum писал (а)>> ? ほいほいしかたない このような指標はすでに書かれているのですが、誰が書いたのか、どこで見たのか覚えていません......。自分で探すか、誰かがリンクを教えてくれると思ったのですが...。 Prival 2008.09.10 07:08 #459 ArrayLR()関数が正確に動作しない。 1.バーの時間的位置を考慮していない。バーがない場合、正しく動作しません。 2. 係数の計算に使われるアルゴリズムには、丸め誤差の蓄積という欠点があります。「Help me write a linear regression」を参照してください(Rosh ページの一番下にこの落とし穴が確認されています)。 3.このような欠点がないアルゴリズムを提案する。 4. X[i]=Time[i+1]; を X[i]=i+1; に置き換えると、アルゴリズムは似ているが、エラー累積はない。 5.週末だけでなく、バーもサボる :-(( 以下は私のバリエーションです。 //+----------------------------------------------------------------------------+ //| Автор : Сергей Привалов aka Prival, Skype: privalov-sv | //+----------------------------------------------------------------------------+ //| Версия : 10.09.2008 | //| Описание : Формирует массив значений линейной регрессии y(x)=A*x+B. | //+----------------------------------------------------------------------------+ //| Параметры: | //| X - массив значений числового ряда, ось X | //| Y - массив значений числового ряда, ось Y | //+----------------------------------------------------------------------------+ void Array_LR(double &X[], double& Y[]) { double mo_X = 0, mo_Y = 0, var_0 = 0, var_1 = 0; int i,N=ArraySize(X); double A,B; if(N>1) { for ( i = 0; i < N; i ++ ) { mo_X +=X[i]; mo_Y +=Y[i]; } mo_X /=N; mo_Y /=N; for ( i = 0; i < N; i ++ ) { var_0 +=(X[i]-mo_X)*(Y[i]-mo_Y); var_1 +=(X[i]-mo_X)*(X[i]-mo_X); } // значение коэффициента A if(var_1!=0) A = var_0 / var_1; else A=0; // значение коэффициента B B = mo_Y - A * mo_X; ArrayResize(Y, N); for (i=0; i<N; i++) Y[i]=A*X[i]+B; } else Print("ArrayLR(): Недостаточное количество элементов ряда! n=", N); } これは写真です。 作品例 #define r 280 void start() { double X[r], Y[r]; for (int i=0; i<r; i++) { Y[i]=Close[i+1]; X[i]=Time[i+1]; } Array_LR(X, Y); for (i=0; i<r; i++) {SetArrow(170, Blue, "arr"+i, X[i], Y[i]); } チェック用スクリプトを添付 ファイル: test_array_lr.mq4 6 kb Igor Kim 2008.09.10 08:07 #460 Prival писал (а)>> 以下は私のバリエーションです。 よし、セルゲイ! この関数に2つのバリエーションがあるとしよう。 私のバリアントは、ビルトインのグラフィックオブジェクトOBJ_REGRESSIONと同じであるため、良い。誰かがこのオブジェクトから価格を取る必要がある場合、私の機能は彼らを助けることができますが、残念ながらあなたの機能は...でも、他の用途にも使えそう...。ありがとうございました。 1...394041424344454647484950515253...128 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そういうことなんです。既存の制約を考慮しなければなりませんが、一般的に言って、制約は常に変化しています。
可能な限りの制約を解析する関数はありますか?
改造も同様です。
--
(私は、各 good order (OP,SL,TP) に対して3つ、各 market order (SL,TP) に対して2つの合計16の関数を持っています。
そして、許可証の組み合わせを分析するいくつかの関数があります)。
そうですね、私は、可能な限りの制限をチェックするオーダー設定用の関数と、修正用の関数(最初の関数に一部似ています)も別に持っています。しかし、一般的には、実際の取引のExpert Advisorでは、それなしでは困難です。:-)
そう、私は注文を設定するための別の関数を持っていて、それは可能な限りの制限をチェックし、修正のための別の関数(最初の関数と一部似ている)も持っています。 私はあなたにコードを与えることはありません - 私だけが必要とする、非常に多くの "左" トリックがあります - 痛いです。しかし、一般的には、実際の取引のExpert Advisorでは、それなしでは困難です。:-)
実は、すべてを考慮に入れているかどうか、自分で確認したかったのです。チェックしないと、バウンスの連続に遭遇する可能性があります(時にはアクセス禁止になる可能性もあります)。
私のチェックを簡単に列挙します。
1)StopLevel。例えば、SL BuyStopを修正する場合。
距離だけを確認するのではありません。StopLevelの現在の位置とストップオーダーの動きの方向性を分析する必要があります。
SLがStopLevelの回廊の外にある場合、近くに移動するか、無期限に移動させることができます。
SLがコリドー内にある場合、上方への移動は拒否されます。距離コリドー内の変更距離を3pとし、コリドーを30pとした場合、実際に実行を許可する値はStopLevelコリドー境界で定義されるため、ダウン動作は受け入れられるが、StopLevelを考慮する。
2)FreezeLevel。
3. StopLevelとTICKSIZEの比率。注文がすべての通路の外側にある可能性がありますが、TICKSIZEの倍数ではない - それは問題です。修正方向に向かって丸みを帯びる必要があります。非通貨」に対してクリティカル。
4.ロットです。 ミンロート +/- ミンロートパーシャルクロージャーとカウンタークロージャーもみんロクに限定されていることを考慮してください(私見では非論理的ですが、そういうことです)。
パーソナルチェックの後、各チェックがポジティブに終了した場合(禁止事項なし)、オーダーが発行されます。
機能ライブラリの完全公開。
b-Graphics.rar - グラフィカルなオブジェクトを 扱うことができます。
b-Indicators.rar - インジケータを使用した作業。
ArrayLR()関数です。
この関数は、線形回帰の値の配列を生成します。この関数は、以下の必須パラメータを受け付ける。
ArrayLR()関数の使用例です。
過去30バーの線形回帰の 価格水準をマークしてみましょう。
P.S. ArrayLR()関数をテストするスクリプトを添付します。
機能ライブラリの完全公開。
b-Graphics.rar - グラフィカルなオブジェクトを 扱うことができます。
b-Indicators.rar - インジケータを使用した作業。
とてもクールです。>> ありがとうございました
Igorさん、複数のローソク足を1つにまとめることができる良いインジケーターが ありますよ。しかし、それは1時間足チャートでしか機能しません。ユニバーサルにすることは可能ですか?
ありがとうございます。
?
?
ほいほいしかたない
このような指標はすでに書かれているのですが、誰が書いたのか、どこで見たのか覚えていません......。自分で探すか、誰かがリンクを教えてくれると思ったのですが...。
ArrayLR()関数が正確に動作しない。
1.バーの時間的位置を考慮していない。バーがない場合、正しく動作しません。
2. 係数の計算に使われるアルゴリズムには、丸め誤差の蓄積という欠点があります。「Help me write a linear regression」を参照してください(Rosh ページの一番下にこの落とし穴が確認されています)。
3.このような欠点がないアルゴリズムを提案する。
4. X[i]=Time[i+1]; を X[i]=i+1; に置き換えると、アルゴリズムは似ているが、エラー累積はない。
5.週末だけでなく、バーもサボる :-((
以下は私のバリエーションです。
これは写真です。
作品例
チェック用スクリプトを添付
以下は私のバリエーションです。
よし、セルゲイ! この関数に2つのバリエーションがあるとしよう。
私のバリアントは、ビルトインのグラフィックオブジェクトOBJ_REGRESSIONと同じであるため、良い。誰かがこのオブジェクトから価格を取る必要がある場合、私の機能は彼らを助けることができますが、残念ながらあなたの機能は...でも、他の用途にも使えそう...。ありがとうございました。