初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 419 1...412413414415416417418419420421422423424425426...1503 新しいコメント Renat Akhtyamov 2015.08.26 19:55 #4181 -Aleks-: 2年 - テスターで :)まあ、デモで1年動いてるんですけどね...。外部クラスの関係で接続しなければならない時に、そこそこのバグが...。そして今、そのようなバグがあり、どう修正したらいいのかわからない。とりあえず配列のサイズを1桁増やすことにする。なぜ、グラフィックバッファのような自動サイズがないのでしょうか?こんな風に試してみてください。配列 OrderBU[1]を初期化 する。まず配列のサイズを 大きくし ( ArrayResize(OrderBU,NorderBU+1) ) 、次に OrderBU[NorderBU]=OrderTicket();NorderBU++ を実行します。 Aleksey Vyazmikin 2015.08.26 20:08 #4182 new-rena:こんな風に試してみてください。配列 OrderBU[1]を初期化 する。まず配列のサイズを大きくし ( ArrayResize(OrderBU,NorderBU+1) ) 、次に OrderBU[NorderBU]=OrderTicket();NorderBU++ を実行します。 ありがとうございます。暇なときに実験してみます。 Aleksey Vyazmikin 2015.08.27 04:24 #4183 次のようなことをコードで実装するにはどうしたらよいか、アドバイスをお願いします。基本変数Aがあり、それがゼロより小さい場合、さらに5つの変数を使用します - 値は、インジケータ呼び出し 関数から割り当てられます - iCustom。A変数の上下にある値を見つけ、2つのグループから最大、最小、平均値を定義します。配列を使用する必要があると思うのですが、方法がよくわかりません。 Aleksandr Prishenko 2015.08.27 04:37 #4184 この点について、アドバイスをお願いします。 例えば、チャートにウィリアムズ・パーセンテージ・レンジ(%R)インディケータを表示し、ナビゲータからオンバランス・ボリューム(OBV)インディケータをそのウィンドウにドラッグするとします。https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.pngRは0~100%の範囲で動作しますが、OBVは特定の基準がありません。OBVが%Rのウィンドウにあるとき、-20%や-80%を超えていることを視覚的に確認することができます。EAでOBVを-20%以上または-80%以下にするにはどうしたらいいですか?カスタムインジケータのOBVを0~100%の範囲でバインドするには?それ(範囲)に正規化する?どうすればいいのでしょうか。OBVを%Rに正規化する必要はない(絵が違ってくる)ことは理解した。初歩的なことかもしれませんが、私が遭遇したことがないだけです。 Leanid Aladzyeu 2015.08.27 05:01 #4185 -Aleks-:次のようなことをコードで実装するにはどうしたらよいか、アドバイスをお願いします。基本変数Aがあり、それがゼロより小さい場合、さらに5つの変数を使用します - 値は、インジケータ呼び出し 関数から割り当てられます - iCustom。A変数の上下にある値を見つけ、2つのグループから最大、最小、平均値を定義します。配列を使えばいいと思うのですが、やり方がよくわかりません。if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)私はこの方法でやっています。 Leanid Aladzyeu 2015.08.27 05:29 #4186 最初のロットはユーザーによって設定され、その後、このパラメータはアドレス指定できなくなり、EAはそれ自体で動作し、損失の場合には、プログラム(または外部変数)で指定された最大ロットで上昇し、利益の場合には、指定した量だけ減少します。Init "にパラメータを書くと、EAが外部変数lotにアクセスしなくなるのでは?とか、どうすればいいのか?これは近似的な表現です。 E_Ghazaryan 2015.08.27 07:42 #4187 こんにちは。EAでニュースデータを使用する方法を教えてください。このためにインジケータが必要ですか?それともEAが自分で重要なニュースを見つけることができますか? Aleksey Vyazmikin 2015.08.27 13:11 #4188 Leanid Aladzyeu:if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)そうしています。特にパラメータが多い場合は不便です...。配列による解法は面白いですね。特に、変数の値の総数を平均化したときに、最も近い値を求める方法は興味深い。 Vasiliy Smirnov 2015.08.28 07:30 #4189 first_may:こんばんは。天底と金的のクロスで簡単なEAを書こうとして います。以下はそのコードです。void OnTick()void OnTick(){TradeSignal_20()。}int TradeSignal_20(){int sig=0;if(h_ich==INVALID_HANDLE){h_ich=iIchimoku(Symbol(),Period(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb)。return(0)です。}さもなくば{if (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINEif (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINEif (!ArraySetAsSeries(ich1_buffer,true)) return(0);if (!ArraySetAsSeries(ich2_buffer,true)) return(0);}//--- 状態を確認し、sig に値を設定する。if(ich1_buffer[1]>ich2_buffer[1]) sig=1;else if(ich1_buffer[1]<ich2_buffer[1]) sig=-1;でなければ sig=0;if (ich1_buffer[1]>ich2_buffer[1])if (ich1_buffer[2]<ich2_buffer[2])アラート(Symbol()+": purchase");if (ich1_buffer[1]<ich2_buffer[1])if (ich1_buffer[2]>ich2_buffer[2])アラート(Symbol()+": Sale");//--- リターン・トレード・シグナルを返す(sig)。}//+------------------------------------------------------------------+アラートが常に呼び出されるのではなく、一度だけ呼び出されるようにするにはどうしたらよいですか? 毎回のように実行するのではなく、必要に応じて実行してください。 Aleksey Vyazmikin 2015.08.28 07:53 #4190 Vasiliy Smirnov: 毎カチではなく、必要に応じて実行してください。 そして、どうあるべきなのか。新しいバーが 開いたら-、新しいバーのチェックを作る...。 1...412413414415416417418419420421422423424425426...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
2年 - テスターで :)まあ、デモで1年動いてるんですけどね...。外部クラスの関係で接続しなければならない時に、そこそこのバグが...。そして今、そのようなバグがあり、どう修正したらいいのかわからない。とりあえず配列のサイズを1桁増やすことにする。なぜ、グラフィックバッファのような自動サイズがないのでしょうか?
こんな風に試してみてください。
配列 OrderBU[1]を初期化 する。
まず配列のサイズを 大きくし ( ArrayResize(OrderBU,NorderBU+1) ) 、次に OrderBU[NorderBU]=OrderTicket();NorderBU++ を実行します。
こんな風に試してみてください。
配列 OrderBU[1]を初期化 する。
まず配列のサイズを大きくし ( ArrayResize(OrderBU,NorderBU+1) ) 、次に OrderBU[NorderBU]=OrderTicket();NorderBU++ を実行します。
この点について、アドバイスをお願いします。
例えば、チャートにウィリアムズ・パーセンテージ・レンジ(%R)インディケータを表示し、ナビゲータからオンバランス・ボリューム(OBV)インディケータをそのウィンドウにドラッグするとします。
https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.png
Rは0~100%の範囲で動作しますが、OBVは特定の基準がありません。
OBVが%Rのウィンドウにあるとき、-20%や-80%を超えていることを視覚的に確認することができます。
EAでOBVを-20%以上または-80%以下にするにはどうしたらいいですか?
カスタムインジケータのOBVを0~100%の範囲でバインドするには?それ(範囲)に正規化する?どうすればいいのでしょうか。
OBVを%Rに正規化する必要はない(絵が違ってくる)ことは理解した。
初歩的なことかもしれませんが、私が遭遇したことがないだけです。
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
私はこの方法でやっています。
最初のロットはユーザーによって設定され、その後、このパラメータはアドレス指定できなくなり、EAはそれ自体で動作し、損失の場合には、プログラム(または外部変数)で指定された最大ロットで上昇し、利益の場合には、指定した量だけ減少します。
Init "にパラメータを書くと、EAが外部変数lotにアクセスしなくなるのでは?
とか、どうすればいいのか?
これは近似的な表現です。
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
そうしています。
特にパラメータが多い場合は不便です...。
配列による解法は面白いですね。特に、変数の値の総数を平均化したときに、最も近い値を求める方法は興味深い。
こんばんは。天底と金的のクロスで簡単なEAを書こうとして います。以下はそのコードです。
void OnTick()
void OnTick()
{
TradeSignal_20()。
}
int TradeSignal_20()
{
int sig=0;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(Symbol(),Period(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb)。
return(0)です。
}
さもなくば
{
if (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINE
if (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINE
if (!ArraySetAsSeries(ich1_buffer,true)) return(0);
if (!ArraySetAsSeries(ich2_buffer,true)) return(0);
}
//--- 状態を確認し、sig に値を設定する。
if(ich1_buffer[1]>ich2_buffer[1]) sig=1;
else if(ich1_buffer[1]<ich2_buffer[1]) sig=-1;
でなければ sig=0;
if (ich1_buffer[1]>ich2_buffer[1])
if (ich1_buffer[2]<ich2_buffer[2])
アラート(Symbol()+": purchase");
if (ich1_buffer[1]<ich2_buffer[1])
if (ich1_buffer[2]>ich2_buffer[2])
アラート(Symbol()+": Sale");
//--- リターン・トレード・シグナル
を返す(sig)。
}
//+------------------------------------------------------------------+
アラートが常に呼び出されるのではなく、一度だけ呼び出されるようにするにはどうしたらよいですか?
毎カチではなく、必要に応じて実行してください。