MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 52 1...454647484950515253545556575859...1953 新しいコメント Artyom Trishkin 2017.01.02 22:18 #511 trader781:ストップ/ストップが200の場合の対処法けどtp=NormalizeDouble((価格+(TakeProfit*_Point)),Digits)となります。ドル円の場合、為替レート117.000で317.000円になります期待値 117.200Point()==0.001 (USDJPYの場合)なら、200*0.001で0.2。ここで、117.0に0.2を足すと117.2になります。どこが「不公平」なのか? Mickey Moose 2017.01.02 22:30 #512 Artyom Trishkin:Point()==0.001 (USDJPYの場合)なら、200*0.001で0.2。ここで、117.0に0.2を足すと117.2になります。そして、「不公平感」はどこにあるのでしょうか。117+(200*_Point)で117.200になると予想されます。通常、EURUSDでテストされます。Vitalyが上で説明しました、ありがとうございます。見つけたような気がします。中間的なアルゴリズムとしては十分だと思いますので、あとはこの瞬間を何らかの形でフィルタリングする必要があります。https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp График AUDJPY, M5, 2017.01.02 22:49 UTC, MetaQuotes Software Corp., MetaTrader 4, Demo www.mql5.com Символ: AUDJPY. Период графика: M5. Брокер: MetaQuotes Software Corp.. Торговая платформа: MetaTrader 4. Режим торговли: Demo. Дата: 2017.01.02 22:49 UTC. Artyom Trishkin 2017.01.02 23:20 #513 trader781:117+(200*_Point)で117.200と出力される見込みです。...まあ、それは彼が与えているものですが......。計算をお見せしました。あるいは、多通貨で、「非ネイティブ」シンボルからデータを取っているのでしょうか?そして、Point()やDigits()の代わりに、SymbolInfoDouble() や(int)SymbolInfoInteger()を使用します。 Mickey Moose 2017.01.03 16:21 #514 Artyom Trishkin:まあ、それは彼が与えているものですが......。計算をお見せしました。それとも、多通貨で、「非ネイティブ」シンボルからデータを取るのでしょうか?Point() と Digits() の代わりにSymbolInfoDouble() と (int)SymbolInfoInteger() を使用します。ありがとう、うまくいったよ)))私は現在、一連の注文にトレーリングストップを挿入する方法を探しています。115.000から117.000まで200ステップで10回注文しています。各ロットは、前のロットよりx値だけ大きくなる目標は、次の計算を使用して注文チェーン全体にトレーリングストップを置くことです(平均価格)+(y*_point)。トレーリングストップを設定しているのですが、スタック全体の平均価格とロットによってどのように計算されるのかについて質問です。 Alexey Viktorov 2017.01.03 16:29 #515 trader781:ありがとうございます、うまくいきました)))現在、注文の連鎖で末尾を挿入する方法を探しています。115.000から117.000まで200ステップで10回注文しています。各ロットは、前のロットよりx値だけ大きくなる目標は、次の計算を使用して注文チェーン全体にトレーリングストップを置くことです(平均価格)+(y*_point)。トレーリングストッパー自体は持って いるのですが、問題は積み上げ全体の 平均価格にどう付けるか、ロットによってどう計算するのかですゼロからプログラミングを学べ、というのは普遍的なアドバイスです。そうすれば、そんな疑問を持つこともないでしょう。プログラミングは簡単なことではありません。つまり、すべてのオーダーをループさせて、「必要なもの」だけを選んで修正しなければならないわけです。しかし、選択した順番 を入れ替えても動作する確率が非常に高いので、これには十分注意しなければなりません。 Mickey Moose 2017.01.03 18:44 #516 Alexey Viktorov:ゼロからプログラミングを学べ」というのは、世界共通のアドバイスです。そうすれば、そのような疑問はなくなるでしょう。プログラミングは簡単ではありません。つまり、ループ内のすべてのオーダーを確認し、「必要なもの」だけを選択して修正する必要があるのです。しかし、この質問には非常に注意が必要で、選択した順番 を入れ替えるとうまくいく確率が非常に高くなるからです。 現在、最後の1枚に取り組んでいて、残りは休止中だが、スキームが不正確なので、もっとうまくやりたい Олег 2017.01.03 20:18 #517 皆さんこんにちは、MAをベースにしたEAを書きました。(私自身、MQL4で書き始めたのは少し前なので、まずは簡単なものから始めてみようと思いました。だから、何が悪かったのか知りたかったんです。エキスパートアドバイザーの本質は単純です:2つまたは3つのMAが交差したときに警告を与える(方法に応じて:積極的な= 2つのMAのクロスオーバー、保守= 3つのMAのクロスオーバー)...です。以上です。自分から市場に参入する。Expert Advisorでは、2つの機能を規定しました。積極的 - これは、2つの最速MAの単純なクロスオーバーで信号です。 保守的 - 2つの高速MAのクロスオーバーで、あなたはまた、最も遅いものを考慮する必要があります(つまり、トレンドの方向の信号です)。問題は、Expert Advisorが1つの警告(開始時または時間枠の変更時)しか出さず、その後のすべてのシグナルに沈黙していることです。何が問題なのか、教えていただけるとありがたいです。MQL4のルールに従って、すべてのイベントに対して関数を規定しました。もちろん、関数なしですべてをOn Tickイベントに登録することもできますが、関数を別途登録することで、関数を 簡単に呼び出せる ようにしたいですし、時間と共に新しい「フィルター」関数を追加したいのです。コード================================================================================================extern bool Metod=false; // メソッドの選択:Conservative または Aggressive。extern int Time_Frame=1;//Time frameinput bool Metod=false; /Conservative-TRUE | Aggressive-FALSEextern inttern FastMA_Parametr=5;extern int intMA_Parametr=8;extern int SlowMA_Parametr=18;extern inttern TrendMA=163;extern bool DemarkGo=false;extern inttern Demperiod=4;int rez;// MAが下向きにクロスしていればrez=-1、上向きならrez=1。//+------------------------------------------------------------------+// MAを初期化するdouble FastMA=iMA(Symbol(),Time_Frame,FastMA_Parametr,0,3,0,0);// FastMAdouble MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parametr,0,3,0,0);// 平均値MAdouble SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parametr,0,1,0,0); スローMA//+------------------------------------------------------------------+int OnInit(){rez=0とする。return(INIT_SUCCEEDED);}//=======================================//------------------------------------------------------------------------------void OnDeinit(const int reason){}//=============================================//Metod=trueの時のKonservativeシグナル用関数------------------------------+.int Konservative()//3本線の上方クロスオーバーを確認する{if (Metod==true){if(FastMA>MiddiMA&&&MiddiMA>SlowMA&&&rez<=0){Alert(Symbol(),Time_Frame,"----Up-----"。コンサバティブ」)。rez=1です。Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。return(rez);}//3本の線が下向きにクロスオーバーしているか確認するif(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0)とする。{Alert(Symbol(),Time_Frame," ---- DOWN----.コンサバティブ」)。rez=-1です。Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。return(rez);}}return(rez);}//=================================================//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++アグレッシブ機能int Agressive()// スローのない2本の線の上方交差をチェックする{if (Metod==false){if(FastMA>MiddiMA&&rez<=0){Alert(Symbol(),Time_Frame,"----Up-----"。アグレッシブ」)。rez=1です。Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。}//スローラインなしで2本のラインが下向きにクロスオーバーしていることを確認するif(FastMA<MiddiMA&&rez>=0)とする。{Alert(Symbol(),Time_Frame," ---- DOWN----.アグレッシブ」)。rez=-1です。Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。}}return(rez);} Any questions from newcomers can someone help me ONNXモデルをクラスでラップする Mickey Moose 2017.01.03 22:40 #518 Олег: これなら、自分でもできそうだ。 ファイル: 6645.mq4 7 kb Alexey Viktorov 2017.01.04 07:03 #519 trader781: 現時点ではラストオーダーで、他は休止中ですが、スキームが正確ではないので、もっと良くしてほしいです。いいえ、100%ではありません。それとも別の話かな?一般に、アルゴリズムは次のようになる。すべての注文を通過させるループを設定するのです。次の順番を選んで作業するのです。その注文が必要かどうかを確認するのです...。そうでない場合は、次のループの繰り返し...必要」であれば、改造に適しているかどうかを確認する。ストップロス水準との距離を比較するだけです。距離が十分であれば、順序を変更する。つまり、全オーダーをループする修正関数があり、その呼び出しの前に、ループも動作している場合、選択されたオーダーが 変更される...ということです。 Mickey Moose 2017.01.04 07:59 #520 Alexey Viktorov:いいえ、100%ではありません。それとも別の話かな?一般に、アルゴリズムは次のようになる。すべての注文を通過させるループを設定するのです。次の順番を選んで作業するのです。その注文が必要かどうかを確認するのです...。そうでない場合は、次のループの繰り返し...必要」であれば、改造に適しているかどうかを確認する。ストップロス水準との距離を比較するだけです。十分な距離であれば、オーダーを修正する。つまり、すべての注文をループする修正関数があり、その呼び出しの前に、ループも動作している場合、選択された注文が 変更される...ということです。 ポイントは、あるロットの負け注文が常に存在し、それも残りのロットを犠牲にして満たされなければならないことです。きっかけは、閉店時間です。一つでも欠けると、その連鎖は途絶えてしまうのです。したがって、問題は、選択されたすべてのものの平均価格をどのようにトロールするかということである。 1...454647484950515253545556575859...1953 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ストップ/ストップが200の場合の対処法
けど
tp=NormalizeDouble((価格+(TakeProfit*_Point)),Digits)となります。
ドル円の場合、為替レート117.000で317.000円になります
期待値 117.200
Point()==0.001 (USDJPYの場合)なら、200*0.001で0.2。
ここで、117.0に0.2を足すと117.2になります。
どこが「不公平」なのか?
Point()==0.001 (USDJPYの場合)なら、200*0.001で0.2。
ここで、117.0に0.2を足すと117.2になります。
そして、「不公平感」はどこにあるのでしょうか。
117+(200*_Point)で117.200になると予想されます。
通常、EURUSDでテストされます。
Vitalyが上で説明しました、ありがとうございます。
見つけたような気がします。
中間的なアルゴリズムとしては十分だと思いますので、あとはこの瞬間を何らかの形でフィルタリングする必要があります。
https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp
117+(200*_Point)で117.200と出力される見込みです。
...まあ、それは彼が与えているものですが......。計算をお見せしました。あるいは、多通貨で、「非ネイティブ」シンボルからデータを取っているのでしょうか?
そして、Point()やDigits()の代わりに、SymbolInfoDouble() や(int)SymbolInfoInteger()を使用します。
まあ、それは彼が与えているものですが......。計算をお見せしました。それとも、多通貨で、「非ネイティブ」シンボルからデータを取るのでしょうか?
Point() と Digits() の代わりにSymbolInfoDouble() と (int)SymbolInfoInteger() を使用します。
ありがとう、うまくいったよ)))
私は現在、一連の注文にトレーリングストップを挿入する方法を探しています。
115.000から117.000まで200ステップで10回注文しています。
各ロットは、前のロットよりx値だけ大きくなる
目標は、次の計算を使用して注文チェーン全体にトレーリングストップを置くことです(平均価格)+(y*_point)。
トレーリングストップを設定しているのですが、スタック全体の平均価格とロットによってどのように計算されるのかについて質問です。
ありがとうございます、うまくいきました)))
現在、注文の連鎖で末尾を挿入する方法を探しています。
115.000から117.000まで200ステップで10回注文しています。
各ロットは、前のロットよりx値だけ大きくなる
目標は、次の計算を使用して注文チェーン全体にトレーリングストップを置くことです(平均価格)+(y*_point)。
トレーリングストッパー自体は持って いるのですが、問題は積み上げ全体の 平均価格にどう付けるか、ロットによってどう計算するのかです
ゼロからプログラミングを学べ、というのは普遍的なアドバイスです。そうすれば、そんな疑問を持つこともないでしょう。プログラミングは簡単なことではありません。
つまり、すべてのオーダーをループさせて、「必要なもの」だけを選んで修正しなければならないわけです。しかし、選択した順番 を入れ替えても動作する確率が非常に高いので、これには十分注意しなければなりません。
ゼロからプログラミングを学べ」というのは、世界共通のアドバイスです。そうすれば、そのような疑問はなくなるでしょう。プログラミングは簡単ではありません。
つまり、ループ内のすべてのオーダーを確認し、「必要なもの」だけを選択して修正する必要があるのです。しかし、この質問には非常に注意が必要で、選択した順番 を入れ替えるとうまくいく確率が非常に高くなるからです。
皆さんこんにちは、MAをベースにしたEAを書きました。(私自身、MQL4で書き始めたのは少し前なので、まずは簡単なものから始めてみようと思いました。だから、何が悪かったのか知りたかったんです。エキスパートアドバイザーの本質は単純です:2つまたは3つのMAが交差したときに警告を与える(方法に応じて:積極的な= 2つのMAのクロスオーバー、保守= 3つのMAのクロスオーバー)...です。以上です。自分から市場に参入する。Expert Advisorでは、2つの機能を規定しました。積極的 - これは、2つの最速MAの単純なクロスオーバーで信号です。 保守的 - 2つの高速MAのクロスオーバーで、あなたはまた、最も遅いものを考慮する必要があります(つまり、トレンドの方向の信号です)。問題は、Expert Advisorが1つの警告(開始時または時間枠の変更時)しか出さず、その後のすべてのシグナルに沈黙していることです。何が問題なのか、教えていただけるとありがたいです。MQL4のルールに従って、すべてのイベントに対して関数を規定しました。もちろん、関数なしですべてをOn Tickイベントに登録することもできますが、関数を別途登録することで、関数を 簡単に呼び出せる ようにしたいですし、時間と共に新しい「フィルター」関数を追加したいのです。
コード
================================================================================================
extern bool Metod=false; // メソッドの選択:Conservative または Aggressive。
extern int Time_Frame=1;//Time frame
input bool Metod=false; /Conservative-TRUE | Aggressive-FALSE
extern inttern FastMA_Parametr=5;
extern int intMA_Parametr=8;
extern int SlowMA_Parametr=18;
extern inttern TrendMA=163;
extern bool DemarkGo=false;
extern inttern Demperiod=4;
int rez;// MAが下向きにクロスしていればrez=-1、上向きならrez=1。
//+------------------------------------------------------------------+
// MAを初期化する
double FastMA=iMA(Symbol(),Time_Frame,FastMA_Parametr,0,3,0,0);// FastMA
double MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parametr,0,3,0,0);// 平均値MA
double SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parametr,0,1,0,0); スローMA
//+------------------------------------------------------------------+
int OnInit()
{
rez=0とする。
return(INIT_SUCCEEDED);
}
//=======================================
//------------------------------------------------------------------------------
void OnDeinit(const int reason)
{
}
//=============================================
//Metod=trueの時のKonservativeシグナル用関数------------------------------+.
int Konservative()
//3本線の上方クロスオーバーを確認する
{
if (Metod==true)
{
if(FastMA>MiddiMA&&&MiddiMA>SlowMA&&&rez<=0)
{
Alert(Symbol(),Time_Frame,"----Up-----"。コンサバティブ」)。
rez=1です。
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。
return(rez);
}
//3本の線が下向きにクロスオーバーしているか確認する
if(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0)とする。
{
Alert(Symbol(),Time_Frame," ---- DOWN----.コンサバティブ」)。
rez=-1です。
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。
return(rez);
}
}
return(rez);
}
//=================================================
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
アグレッシブ機能
int Agressive()
// スローのない2本の線の上方交差をチェックする
{
if (Metod==false)
{
if(FastMA>MiddiMA&&rez<=0)
{
Alert(Symbol(),Time_Frame,"----Up-----"。アグレッシブ」)。
rez=1です。
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。
}
//スローラインなしで2本のラインが下向きにクロスオーバーしていることを確認する
if(FastMA<MiddiMA&&rez>=0)とする。
{
Alert(Symbol(),Time_Frame," ---- DOWN----.アグレッシブ」)。
rez=-1です。
Comment("FastMA ",FastMA," MiddiMA ",MiddiMA," SlowMA ",SlowMA," rez ",rez)。
}
}
return(rez);
}
現時点ではラストオーダーで、他は休止中ですが、スキームが正確ではないので、もっと良くしてほしいです。
いいえ、100%ではありません。それとも別の話かな?
一般に、アルゴリズムは次のようになる。
すべての注文を通過させるループを設定するのです。
次の順番を選んで作業するのです。
その注文が必要かどうかを確認するのです...。そうでない場合は、次のループの繰り返し...
必要」であれば、改造に適しているかどうかを確認する。ストップロス水準との距離を比較するだけです。
距離が十分であれば、順序を変更する。
つまり、全オーダーをループする修正関数があり、その呼び出しの前に、ループも動作している場合、選択されたオーダーが 変更される...ということです。
いいえ、100%ではありません。それとも別の話かな?
一般に、アルゴリズムは次のようになる。
すべての注文を通過させるループを設定するのです。
次の順番を選んで作業するのです。
その注文が必要かどうかを確認するのです...。そうでない場合は、次のループの繰り返し...
必要」であれば、改造に適しているかどうかを確認する。ストップロス水準との距離を比較するだけです。
十分な距離であれば、オーダーを修正する。
つまり、すべての注文をループする修正関数があり、その呼び出しの前に、ループも動作している場合、選択された注文が 変更される...ということです。