EMA戦略のヘルプ
7件の返信
やあ、みんな、,
私は、ファストEMAがローEMAをクロスした瞬間にトレードを開始する、シンプルなEMA戦略に取り組んでいます。.
すでにS/L(損切り)とトレイリングストップを設定していますが、次の場合に機能する追加のS/Lを作成したいと思います:
ロングトレード:ローソク足がスローMAを下抜けて確定した場合
ショートトレード:ローソク足がスローMA(移動平均線)の上で確定した場合
このS/Lを作成するためにウィザードに以下のコードを入力しましたが、期待通りの結果にならなかったため、どこか間違えてしまったようです:
もし:
OrderPosition(マジックナンバー) は買いポジションです
かつ: isBaropen が True
and close[1] < SlowEma
それでは:
ポジションの決済 (マジックナンバー)
一体何がいけなかったのか、そしてこのS/L(セーブ&ロード)をどうすればうまく機能させられるでしょうか?
事前にお手伝いいただきありがとうございます。メリークリスマス
デビッド
0
問題として考えられるのは、条件が満たされたときに価格にストップロスを設定する競合する2つのルールと、メインルールからのトレーリングストップロスが存在しているということです。つまり、メインルールではトレーリングストップロスに従ってストップロスを1.5028に移動するように指示されている一方で、終値(Close)がスローEMA(SlowEMA)未満のときにストップロスを1.5018にするよう指示する別のルールが存在しています。.
メインルールからトレーリングストップロスを削除し、希望する方法でトレーリングストップロスを設定する追加ルールを作成し、さらに終値がslowEma未満の場合の別のトレーリングストップロスを作成することをお勧めします。したがって、次のようになります:
[u][b]メインエントリーのルール[/b][/u]
トレーリングストップを削除します。利益確定目標と元のストップロスを設定するようにしてください
[u][b]トレーリングストップ 1[/b][/u]
* トレーリングストップの管理方法に関する条件を入力します。表示される内容は以下のようになる可能性があります:
もし
[indent=1][color=#282828][font=helvetica, arial, sans-serif]注文ポジション(マジックナンバー)はロングです[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]また、isBaropen の値が True です[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]そして閉じる[1] > SlowEma[/font][/color][/indent]
それでは
[indent=1]トレーリングストップロスを入力してください[/indent]
[u][b]トレーリングストップ 2[/b][/u]
もし
[indent=1][color=#282828][font=helvetica, arial, sans-serif]注文ポジション(マジックナンバー)はロングです[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]また、isBaropen の値が True です[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]そして閉じる[1] < SlowEma[/font][/color][/indent]
それでは
[indent=1]トレーリングストップロスを入力してください[/indent]
これで、競合するトレーリングストップロスはなくなり、どの条件が満たされるかに応じて、一度に1つのルールのみがトレーリングストップを制御するようになると思います。これを試して、問題が解決するかどうかを確認することができます。.
0
ありがとね、ステアルノ。,
実際のところ、私の中核となるエントリー・ルールにはトレーリング・ストップは含まれていません。実際、エントリー・ルールにあるのはストップ・ロスのみです。.
その後、ご提案いただいたように、トレーリングストップに関する新しいルールを追加しました。現在、終値がスローMAを下抜けたとき、またはスローMAを下回ったときに機能する新しいストップロスを作成しようとしています。.
私の使っているコードが間違っていないのであれば、あなたが言ったように、おそらく他の何らかのルールがこの新しいルールとS/Lを競合させているのでしょう。.
上記のコードに追加して、ルールの競合を避けるためのコードはありますか?.
またありがとうございます
0
わかりました。では、トレーリングストップを実行するルールが2つできましたね。わかりやすいように名前を付けましょう。.
これまでにあなたから得た情報によると、TSルール2とは以下の通りです:
[color=#282828][font=helvetica, arial, sans-serif]もし[/font][/color]
OrderPosition(マジックナンバー) は買いポジションです
かつ: isBaropen が True
and close[1] > SlowEma
[color=#282828][font=helvetica, arial, sans-serif]それから[/font][/color]
[indent=1][color=#282828][font=helvetica, arial, sans-serif]トレーリングストップロスを指定してください[/font][/color][/indent]
[color=#282828][font=helvetica, arial, sans-serif][color=#282828][font=helvetica, arial, sans-serif]TS ルール 1[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]?――この問題で使われている表現が分かりません。[/font][/color]
[b][color=#282828][font=helvetica, arial, sans-serif]2つの考え:[/font][/color][/b]
[color=#282828][font=helvetica, arial, sans-serif]1. 添付ファイルにあるようにトレーリングストップを行うのではなく、これらのルールにおけるTHEN文を実際に「SLを移動」するように変更する必要があります。 [/font][/color][/font][/color]実際には、「トレーリングストップ」というフィールドを使用するのではなく、指定された条件が満たされた際に、各バーごとにストップロスを変更しているだけです。
[font=”helvetica, arial, sans-serif”][color=”#282828″]2. TSルール1 – TSルール2と区別するための条件が必要です。したがって、TSルール2が「close[1] > SlowEma」と定めている場合、TSルール1には次のように定めることを提案します [/color][/font][color=#282828][font=helvetica, arial, sans-serif]「close[1] < SlowEma」とすることを提案します。そうすれば、一度に適用されるルールは1つだけになります。[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]これらのいずれかで問題は解決しましたか? もし解決しない場合は、SQWファイルを投稿してください。実際のコードを確認させていただきます。[/font][/color]
[color=#282828][font=helvetica, arial, sans-serif]-Stearno[/font][/color]
0
Stearnoさん、ありがとうございます。でも、自分のプログラムの説明が少しわかりにくかったようです。.
私には以下のルールがあります:
「THENセクション」にS/Lのみがあるメインエントリーのルール。.
2) カスタムインジケーターに基づき、「THENセクション」に「S/Lを移動(move S/L to)」を設定する動的トレーリングストップ(TS)ルール:
もし:
市場のポジションはロングです
and: Order S/L (MagicLong) < icustom…………..
それでは:
S/Lの移動先:
マジックナンバー: magicLong
価格:icustom……………..
もちろん、ショートトレードについては逆のルールを持つTSを手に入れた。.
3) 次に、バーの終値がロングトレードではSlowMAを下方に、ショートトレードでは上方にクロスした場合、即座にトレードを決済するS/L(ロングおよびショートトレードの両方)を作成したいと考えています。
私もそのように考えましたが、うまくいきません:
ロングトレードの場合:
もし:
マーケットポジションはロングです
かつ:isBarOpen が True
and: OrderS/L(MagicLong) <-20
and: Close[1] < SlowMA
それでは:
ポジションを決済
マジックナンバー:マジックロング
ショートトレードの場合も、ルールは逆になります。.
ご意見をお聞かせください。特に問題が見つからないようでしたら、.mq4ファイルを添付します。
重ねてお礼申し上げます
0
ごめんね、スティーアノ、,
取引を決済する新しいルールにおいて間違いがありました。正しいルールは以下の通りです:
ロングトレードの場合:
もし:
マーケットポジションはロングです
かつ、isBarOpenはTrue
and: OpenS/L(MagicLong) <-20 (not OrderS/L like above)
and: Close[1] < SlowMA
とにかく、.sqwファイルを添付しておきますので、ご自身でご確認ください。.
ありがとう
0
1つ気づいたのですが、そのEAはS/R (Barry) v1とv2の両方を参照しています。これは間違いですか?
2点目ですが、朗報として、あなたのルールは当初お話ししたような矛盾を起こしていません。ストップロスを移動するルールが1つあり、その後、-20で注文を決済するという緊急ストップロスがあります(-20という形式や使い方は私が使ったことがないため、これが正しいかどうかマークに確認してもらう必要があります。テストして問題なければ大丈夫です)
もう一つ気づいた点として、Barryのサポート/レジスタンスは移動します。そのため、それをトレーリングストップロスとして使用すると、ストップロスは下方向も含めて常に移動し続けます。もしそれが意図した動作であれば問題ありません。.
例えば、,
現在、S/R Barryはレベルを1.60778に設定するように言っています。そのため、あなたのEAはストップロスをそのレベルからx pips下に置きます。その後、価格が下がりました(ただし、サポートからx pips下に置いているため、ストップロスにヒットするほど十分には下がりませんでした)。現在、S/R Barryはサポートラインを1.60749に設定するように言っています。そのため、EAはストップロスをそのレベルからx pips下に移動させます。これは、価格がストップロスにヒットするほど大きく動くか、-20の緊急ロスカットにヒットするまで続きます。.
これの一例がここにあります:
ご覧のとおり、急激な価格変動がない限り、ストップロスは、SLにかかる急激な変動が起きるか、あるいは注文の損益が(指定の水準に達する)まで、下がり続けます。 < -20。 さて、ご質問についてですが、ここで見られるようになぜSLが機能していないかというと、
マークが別の投稿で、すべてのルールに「Is Bar Open is True」を使用しなければならないと言っていたと思います。これは、バーがオープンするたびにルールを開始するトリガーです。したがって、これが正しいのであれば、あなたのルールに従ってSL(ストップロス)が移動されていない理由の説明がつきます。あなたがやろうとしていること、つまりEA Generatorにあったオプションのように、バーのオープンではなく各ティックでEAに計算させたいことは理解できます。しかし、EA Wizardでそれをどう行うのか私には分かりませんし、ソフトウェア内のオプションとしても見当たりません。そのため、現在はその機能が利用できず、各ルールでBar Openの記述を使用する必要があると推測せざるを得ません。私にはSR Barry v1やv2のインジケーターがないため、これが原因でEAが正しく動作するようになるかどうかをテストすることができません。ですから、それを試してどのような結果になるか確認してみてください。.
ステアルノ
0
こんにちは、ステアルノさん、,
まずは、私のEAのテストに時間を割いていただき、本当にありがとうございます…心から感謝いたします。.
私はあなたの質問に順番に答えます:
「IF」条件におけるV1出力と「THEN」条件におけるV2出力ですが、マークがこのコードを手伝ってくれたので間違いかどうかは分かりません…しかし、戦略は自分の思い通りに機能しているので、間違いだとはあまり思いません。それについてはマークに聞いてみます。.
2) Open P/L < -20 については、マークがチュートリアルの「ストラテジーコントロールの使用」セクションで作成した数式です。.
3)はい、その通りです。S/R(バリー)は市場に追随し、条件が満たされ次第サポートラインとレジスタンスラインを描画します。少なくとも私の戦略においては、TS(トレーディングシステム)として素晴らしいものです。.
私の戦略では「Take Profit」は採用しておらず、TSが達成されるまで、市場の動きに合わせてS/Lをそのままにしています。.
4) < -20 の意味は、実際に私のS/L(損切り)が20pips以上ヒットした場合にトレードを決済しないということではありませんでした。このコードで私がやろうとしたのは、オープン・ロス(含み損)が20pips未満の場合にのみ、緊急S/L内の他の条件をTRUEにすることです。.
以下に述べることこそが、私が緊急停止機能に関してEAにまさに伝えようとしていることです:
新しいバーが形成されたとき、前のバーの終値がスローMAより下にあるか(ロングトレードの場合)、またはスローMAより上にあるか(ショートトレードの場合)を確認します。.
もしそれが真であり、かつ私の現在の損失が20pips未満である場合(これが「Open P/L < – 20」を設定した理由です)、そのトレードを決済します。.
私の認識が間違っていなければ… 基本的に、この緊急用S/Lが機能していないのは、MAIN ENTRYのルール内にも isBarOpen のコードを入力する必要があるから、ということですか?
またありがとうございます
0
7件の返信を表示中 - 1 - 7件目 (全7件中)