コーディングの方法は? - ページ 74

 

という意味でしょうか。

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;

 

ありがとうございます。

今見ると、当たり前でしたね。これでうまくいきました。最初のバックテストは あまりよくありません。微調整の時間です。

 
Big Be:
新規注文のHALFのStopを変更する方法を知りたいのです。 私の理解では、これは2つの注文、例えば.2ロットと.2ロットを開くことを意味します。

私のEAは、マネーマネジメントの計算に基づいてロット数を決定します。

一方の注文のストップが変更された後(価格水準に達したことに基づく)、私は出口コードに両方の注文をクローズさせます。

もう一方の注文は、元のストップを維持するか、場合によってはブレイクイーブンに移動させます。

MM機能による)初期ロット数が奇数の場合、奇数または10分の1のロット数に切り捨てる代わりに、2つの注文の間で不均等に分割したいと思います。

これはマジックナンバーと、あちこちのコードの数行を含むと信じています。 多分、私がコピーすることができたすべてのこのようなとEAがあります。

どんな助けでもありがとうございます。

ビッグベー

こんにちは、あなたは別の場所でこれについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。

 

こんにちは、ラルフ。

ralph.ronnquist:
こんにちは、あなたは別の場所でこのことについて明確に私に尋ねたが、いくつかの返信があり、私はあなたの問題のどの部分が残っているかもわかりません。また質問するラウンドが必要でしょう...。

私の質問に答えるような返信はありませんでしたが、他の人の質問に対する私の回答に関するものもありました。

だから、すべての部分が残っています。(このスレッドに投稿した問題の引用については、前の投稿を参照してください。)

ありがとうございました。

ビッグ・ベー

 

指値注文の設定に関する問題

やあ、みんな。

私の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?

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とは何ですか?

 
nondisclosure007:
Expert Advisor Builderとは?

ゴルダゴとか これとか

 

敷地面積を変える

こんにちは。

EAのロットサイズを変化させるコードを入手できますか?

例えば、最初の売り 注文は0.2、2番目の売り注文は0.1です。

ありがとうございます。

SIDDESH

 
Linuxser:
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からこれ以上のフィードバックがないため、この夜、私のフラストレーションが溜まっています!どうか助けてください。

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