コーディングの方法は? - ページ 74 1...676869707172737475767778798081...347 新しいコメント ralphronnquist 2008.02.24 01:23 #731 という意味でしょうか。 if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL; [/PHP]or do you mean: [PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL; 削除済み 2008.02.24 01:45 #732 ありがとうございます。 今見ると、当たり前でしたね。これでうまくいきました。最初のバックテストは あまりよくありません。微調整の時間です。 ralphronnquist 2008.02.24 09:56 #733 Big Be: 新規注文のHALFのStopを変更する方法を知りたいのです。 私の理解では、これは2つの注文、例えば.2ロットと.2ロットを開くことを意味します。私のEAは、マネーマネジメントの計算に基づいてロット数を決定します。 一方の注文のストップが変更された後(価格水準に達したことに基づく)、私は出口コードに両方の注文をクローズさせます。 もう一方の注文は、元のストップを維持するか、場合によってはブレイクイーブンに移動させます。 MM機能による)初期ロット数が奇数の場合、奇数または10分の1のロット数に切り捨てる代わりに、2つの注文の間で不均等に分割したいと思います。 これはマジックナンバーと、あちこちのコードの数行を含むと信じています。 多分、私がコピーすることができたすべてのこのようなとEAがあります。 どんな助けでもありがとうございます。 ビッグベー こんにちは、あなたは別の場所でこれについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。 BigBe 2008.02.24 18:05 #734 こんにちは、ラルフ。 ralph.ronnquist: こんにちは、あなたは別の場所でこのことについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。 私の質問に答えるような返信はありませんでしたが、他の人の質問に対する私の回答に関するものもありました。 だから、すべての部分が残っています。(このスレッドに投稿した問題の引用については、前の投稿を参照してください。) ありがとうございました。 ビッグ・ベー Nerva 2008.02.24 20:48 #735 指値注文の設定に関する問題 やあ、みんな。 私のEAで、特定の価格レベルで取引を行うためのコードを設定しようとしています(指値注文)。 これは指値注文のコードです。 ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red) とします。 lotsとBuyStopLossはあらかじめ決められた計算値で、通常のマーケットの「OP_BUY」関数に切り替えると動作します。 Ask+10*Pointは、現在の価格より上にある任意の値で、私は通常、BuyEntryを使用します。 ストラテジーテスターで コードを実行しようとすると、エラーが出ます。 「2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (これはストップロス関連のエラーです) このエラーの原因について何か思い当たることはありますか? 指値注文の設定の仕方に問題があるのか、成行注文では問題なく動くようなので、ストラテジーテスターで指値注文が実行できない(?)のだと思うのですが。 よろしくお願いします。 Michael 2008.02.24 22:51 #736 Expert Advisor Builder? Lonestar: 私はメタトレーダーの初心者ですが、Expert Advisor Builder を使っていくつかの EA を作成しました。ほとんどのEAは問題なく動作していますが、複数のイグジットを使用する場合に問題があります。クローズ(買い)ロジックとクローズ(売り)ロジックはOR関数で。ANDによる多重は問題なく動作しますが、ORで作成したものは認識されません。以下は出口コードです。//+------------------------------------------------------------------+ //| シグナル開始(売り終了) //+------------------------------------------------------------------+ if (CloseSell1_1 CloseSell2_2 ||CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL.If(CloseSell1_1)となります。 太字の部分が無視しているシグナルです。何かアイデアはありませんか?これは、私が適切にバックテストするのを妨げている唯一のものです。もし誰かが助けてくれて、バックテストがうまくいくのであれば、それを使うことができます。クローズすべきトレードを手動でフィルタリングするだけで、期待できそうです。 ありがとうございます。 Expert Advisor Builderとは何ですか? Linuxser 2008.02.25 00:03 #737 nondisclosure007: Expert Advisor Builderとは? ゴルダゴとか これとか siddesh 2008.02.25 15:56 #738 敷地面積を変える こんにちは。 EAのロットサイズを変化させるコードを入手できますか? 例えば、最初の売り 注文は0.2、2番目の売り注文は0.1です。 ありがとうございます。 SIDDESH Michael 2008.02.25 19:03 #739 Linuxser:Gordagoの ようなもの、あるいはこの ようなもの ありがとうございます。 ゴルダゴはストラテジーのテスト(実際にコードを書く必要がない)には良いですね。 私のEAに使用するテンプレートに手を加える必要があります。 自分のコーディングスタイルに合うように、作成されたものを編集しています。 しかし、全体として、私は感動しています。 Gordagoは商用製品ではないのですか? いくらするのか、どこにも書いてないんだけど。 mach_one_man 2008.02.27 22:29 #740 ERR_COMMON_ERROR #2 取引開始時 皆さん、こんにちは。 先日、NewBarの問題で素晴らしい助言をいただいた後、私は非常に多くのことを学び、私がプログラミングしている学習用EAを大きく前進させました。(主に学習のための練習として、そして私がテストしたい非常に基本的なシステムとして(間違いなく有益ではないでしょうが、それは良い学習の練習になります!)) あるスクリプトを書いたのですが、新しいバーが来るたびに、そのペアの以前の取引をすべて決済し、20期間のATR値を取って、マーケットオープンからATR値の半分まで動いたらマーケットに入るように、買いストップと売りストップを入力するのです。Take ProfitはATRの値で設定する(私の考えでは、半分まで行ったのなら、その日の平均的な動きから、Take Profitを打ち続ける可能性が高いと考える。おそらくこれは完全に間違っているのですが、とにかく値を試すためにプログラムしたいと思います -Strategy Testerではなく デモ口座で) 私はそれをすべてプログラムし、最終的にNormalizeDoubleを使用して小数点以下の余分な桁を削除する方法を見つけました。 これは本当に役に立ちません。Open、Take Profit、Stop Lossに定義されている値をチェックしましたが、これらはすべて妥当なようで、他に何が原因なのかわかりません。GetLastErrorからこれ以上のフィードバックがないため、この夜、私のフラストレーションが溜まっています!どうか助けてください。 ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set { Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value); return(0); } double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp; buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset); nbuyopen=NormalizeDouble(buyopen,Digits); buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset); nbuysl=NormalizeDouble(buysl,Digits); buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset); nbuytp=NormalizeDouble(buytp,Digits); sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset); nsellopen=NormalizeDouble(sellopen,Digits); sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset); nsellsl=NormalizeDouble(sellsl,Digits); selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset); nselltp=NormalizeDouble(sellsl,Digits); Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl); int ticketbuy; ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green); if(ticketbuy<0) { Print("Buy Order failed with error #",GetLastError()); return(0); } int ticketsell; ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red); if(ticketsell<0) { Print("Buy Order failed with error #",GetLastError()); return(0); } もし誰かが見て気になるなら、私はmt4も添付します。また、他の方々のスクリプトの一部を含んでおり、申し訳ありませんが、クレジットを入れていません。(もちろん、私がEAをリリースしたら、クレジットします。私は、この問題を解決するためにこれを投稿しています。) ハワード ファイル: atr.mq4 6 kb How to code? help with my code help to find an 1...676869707172737475767778798081...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
という意味でしょうか。
[/PHP]or do you mean:
[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;
ありがとうございます。
今見ると、当たり前でしたね。これでうまくいきました。最初のバックテストは あまりよくありません。微調整の時間です。
新規注文のHALFのStopを変更する方法を知りたいのです。 私の理解では、これは2つの注文、例えば.2ロットと.2ロットを開くことを意味します。
私のEAは、マネーマネジメントの計算に基づいてロット数を決定します。
一方の注文のストップが変更された後(価格水準に達したことに基づく)、私は出口コードに両方の注文をクローズさせます。
もう一方の注文は、元のストップを維持するか、場合によってはブレイクイーブンに移動させます。
MM機能による)初期ロット数が奇数の場合、奇数または10分の1のロット数に切り捨てる代わりに、2つの注文の間で不均等に分割したいと思います。
これはマジックナンバーと、あちこちのコードの数行を含むと信じています。 多分、私がコピーすることができたすべてのこのようなとEAがあります。
どんな助けでもありがとうございます。
ビッグベーこんにちは、あなたは別の場所でこれについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。
こんにちは、ラルフ。
こんにちは、あなたは別の場所でこのことについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。
私の質問に答えるような返信はありませんでしたが、他の人の質問に対する私の回答に関するものもありました。
だから、すべての部分が残っています。(このスレッドに投稿した問題の引用については、前の投稿を参照してください。)
ありがとうございました。
ビッグ・ベー
指値注文の設定に関する問題
やあ、みんな。
私のEAで、特定の価格レベルで取引を行うためのコードを設定しようとしています(指値注文)。 これは指値注文のコードです。
ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red) とします。
lotsとBuyStopLossはあらかじめ決められた計算値で、通常のマーケットの「OP_BUY」関数に切り替えると動作します。 Ask+10*Pointは、現在の価格より上にある任意の値で、私は通常、BuyEntryを使用します。
ストラテジーテスターで コードを実行しようとすると、エラーが出ます。
「2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (これはストップロス関連のエラーです)
このエラーの原因について何か思い当たることはありますか? 指値注文の設定の仕方に問題があるのか、成行注文では問題なく動くようなので、ストラテジーテスターで指値注文が実行できない(?)のだと思うのですが。 よろしくお願いします。
Expert Advisor Builder?
私はメタトレーダーの初心者ですが、Expert Advisor Builder を使っていくつかの EA を作成しました。ほとんどのEAは問題なく動作していますが、複数のイグジットを使用する場合に問題があります。クローズ(買い)ロジックとクローズ(売り)ロジックはOR関数で。ANDによる多重は問題なく動作しますが、ORで作成したものは認識されません。以下は出口コードです。
//+------------------------------------------------------------------+
//| シグナル開始(売り終了)
//+------------------------------------------------------------------+
if (CloseSell1_1 CloseSell2_2 ||CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL.If(CloseSell1_1)となります。
太字の部分が無視しているシグナルです。何かアイデアはありませんか?これは、私が適切にバックテストするのを妨げている唯一のものです。もし誰かが助けてくれて、バックテストがうまくいくのであれば、それを使うことができます。クローズすべきトレードを手動でフィルタリングするだけで、期待できそうです。
ありがとうございます。Expert Advisor Builderとは何ですか?
Expert Advisor Builderとは?
ゴルダゴとか これとか
敷地面積を変える
こんにちは。
EAのロットサイズを変化させるコードを入手できますか?
例えば、最初の売り 注文は0.2、2番目の売り注文は0.1です。
ありがとうございます。
SIDDESH
Gordagoの ようなもの、あるいはこの ようなもの
ありがとうございます。 ゴルダゴはストラテジーのテスト(実際にコードを書く必要がない)には良いですね。 私のEAに使用するテンプレートに手を加える必要があります。 自分のコーディングスタイルに合うように、作成されたものを編集しています。 しかし、全体として、私は感動しています。
Gordagoは商用製品ではないのですか? いくらするのか、どこにも書いてないんだけど。
ERR_COMMON_ERROR #2 取引開始時
皆さん、こんにちは。
先日、NewBarの問題で素晴らしい助言をいただいた後、私は非常に多くのことを学び、私がプログラミングしている学習用EAを大きく前進させました。(主に学習のための練習として、そして私がテストしたい非常に基本的なシステムとして(間違いなく有益ではないでしょうが、それは良い学習の練習になります!))
あるスクリプトを書いたのですが、新しいバーが来るたびに、そのペアの以前の取引をすべて決済し、20期間のATR値を取って、マーケットオープンからATR値の半分まで動いたらマーケットに入るように、買いストップと売りストップを入力するのです。Take ProfitはATRの値で設定する(私の考えでは、半分まで行ったのなら、その日の平均的な動きから、Take Profitを打ち続ける可能性が高いと考える。おそらくこれは完全に間違っているのですが、とにかく値を試すためにプログラムしたいと思います -Strategy Testerではなく デモ口座で)
私はそれをすべてプログラムし、最終的にNormalizeDoubleを使用して小数点以下の余分な桁を削除する方法を見つけました。
これは本当に役に立ちません。Open、Take Profit、Stop Lossに定義されている値をチェックしましたが、これらはすべて妥当なようで、他に何が原因なのかわかりません。GetLastErrorからこれ以上のフィードバックがないため、この夜、私のフラストレーションが溜まっています!どうか助けてください。
if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set
{
Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);
return(0);
}
double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;
buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);
nbuyopen=NormalizeDouble(buyopen,Digits);
buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);
nbuysl=NormalizeDouble(buysl,Digits);
buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);
nbuytp=NormalizeDouble(buytp,Digits);
sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);
nsellopen=NormalizeDouble(sellopen,Digits);
sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);
nsellsl=NormalizeDouble(sellsl,Digits);
selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);
nselltp=NormalizeDouble(sellsl,Digits);
Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);
int ticketbuy;
ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);
if(ticketbuy<0)
{
Print("Buy Order failed with error #",GetLastError());
return(0);
}
int ticketsell;
ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);
if(ticketsell<0)
{
Print("Buy Order failed with error #",GetLastError());
return(0);
}もし誰かが見て気になるなら、私はmt4も添付します。また、他の方々のスクリプトの一部を含んでおり、申し訳ありませんが、クレジットを入れていません。(もちろん、私がEAをリリースしたら、クレジットします。私は、この問題を解決するためにこれを投稿しています。)
ハワード