私のFX戦略 - PipMachine。 - ページ 3

 

こんにちは、ムックです。

30分ほど前に私が投稿した、100%完璧ではなく、微調整が必要だという投稿のことでしょうか?もしそうなら、私はそのスレッドであなたが尋ねることを述べました。

もう一つの質問ですが、いいえ、私はパフォーマンスレポートを作成していません。

 
de04:
こんにちは、FXGuy2000です。あなたのシステムを試してみたところ、いくつかのピップを稼ぐことができました。素晴らしいシステムをありがとうございます。

どういたしまして。本当にうまくいくことを願っています。

まずデモ口座 でテストしているのでしょうか?そうでない場合は、少なくとも3-6ヶ月は、出現するすべての異なるパターンを知るために、そうしてください。

幸運を祈ります。

 
Maji:
添付のEAを試してみて、システムのルールに沿っているかどうか教えてください。 馬路

ロットやリスクサイズを調整しようとしたら、こんなエラーが出た。

MA CrossOver with Filters.mq4」をコンパイルしています...

関数"BreakEvens" は参照されておらず、Exp-file から削除されます。

関数 "TrailingAlls "が参照されておらず、Exp-fileから削除される。

0件のエラー、2件の警告が発生しました。

 
Maji:
添付のEAを試してみて、システムのルールに沿っているかどうか教えてください Maji

わー、マジで才能あるね、初挑戦でWELL DONE。

攻略テスターで 試したところ、ニクイ結果が出ました。

しかし、しかし...。ということです。

このEAには、してはいけない動作をしているケースがいくつかあります。

どういうことかというと、画像を作って説明しようと思います。

この画像で説明できるといいのですが。自動化するために、人間が操作しなくても動くように単純化しているので、普通に手動でやるとアドバンテージになるような矛盾を最小限に抑えようと思っています。

いずれにせよ、お役に立てれば幸いです...。

いい仕事してますね。

ファイル:
 

FXGuyです。

完全なルールを教えてください。ただし、プログラミング上、価格がチャネル内にあるときに買ってはいけないというようなルールは機能しません。ルールは数学的に定義される必要があるのです。もし、チャネルを数学的に定義できるのであれば、それをコンピュータ・コードに変換してみることもできます。

また、あなたのチャートでは、一箇所、黄色(左側)で、買うのが遅すぎたと書いてありますね。本当はもっと前に買っていたポジションを売っていたのです。実際には、あなたがチャート上でエントリーのマークをつけた数バー前に、プログラムがエントリー条件を満たしたことを検知してエントリーしたのだと思います。例によって、私はルールを実装しようとしているだけなので、ルールがより正確に定義できれば、より簡単になります。

教えてくれてありがとうございます。

Maji

 
Maji:
FXGuy、完全なルールを教えてください。ただし、プログラミング上、チャンネル内に価格があるときは買わない、みたいなルールは通用しません。

そうなんです、これは知っているのですが...。チャンネルがわかるかと思ったんですが...。

ちょっと待て、もう一度チャンネルを見て、数値の範囲を確認してみる。 .... .... ... ADX、+DI、-DIが0~20の範囲にあるときと言うことですね。しかし、変数が変更できるので、ユーザーが設定できるように、Macdの範囲と、EMAも変更できるようにするといいと思うんだ。

さて、これでいいのかどうか...。

ADXのルール

========

ADXで動作しない条件。

---------------------------

つまり、(ADX) && (+DI) && (-DI) が0-20の範囲にある場合、ロング、ショートのエントリーをしないこと。

BUYする条件。

-----------------

IF, (ADX) && (+DI) or (ADX) && (-DI) or (ADX) && (+DI) && (-DI) is in the range of 25+ based on, IF this condition is true, start purchase trade trigger based on, if the true:ADX = 25+ && (+DI) > (-DI) または同等以上 (==>) = BUY

売りの条件

-----------------

IF, (ADX) && (+DI) or (ADX) && (-DI) or (ADX) && (+DI) && (-DI) is in the range of 25+ start purchase trade trigger based on, IF this condition is true:ADX = 25+ && (-DI) > (+DI) or 等しいかそれ以上 (==>) = SELL(売り

ロング、またはショートをクローズする条件。

---------------------------------

直近の最高値のADXが10以上減少した場合。すなわち、紫の線がある上記の図では、ADXの緑の実線は、その最後の既知の高いADXカウントである、59を打つ、この数字は10以上低下した場合、ロングまたはショートをクローズします。

====================================

EMAのルール。

===========

買い条件です。

--------------

IF ADX BUY条件が真であれば

IF EMAFast is > EMASlow BUY/Go Long.

売りの条件

-------------

ADX SELL条件が成立している場合。

IF EMAFast is < EMASlow, SELL/Go Short (売り/ショート)

Close Condition:

---------------

ANY "条件が一緒に成立していれば

Close Long = IF EMAFast is < EMASlow ONLY IF

ADX < 直近の最高値から10以上離れた場合。またはMacd = -0.00

クローズショート = IF EMAFast is > EMASlow ONLY IF

ADXが直近の最高値から10以上離れている場合のみ。またはMacd = 0.00以上

Macdの買い条件。

============

買い条件: ================================= 1つまたは両方、あるいはすべての条件が成立した場合、買い取引。

EMAFast>EMASlow かつ IF (ADX BUY Condition is true) かつ Macdsignal line is 0.00+ ならば、LONG/BUYする。

Macdの売り条件。

-------------------

売りの条件: ------------------- 売りの条件: ------------------- 売りの条件: ------------------- 売りの条件: ------------------- 1つまたは両方、あるいはすべての条件が成立している場合。

EMAFast < EMASlowで、かつMacdシグナルラインが-0.00の場合、またはADX SELL条件が成立している場合、SHORT/SELLとなります。

Macdの終値の条件。

--------------------

いずれかの条件が成立したら、ショートトレードを終了します。

IF macd is +0.00 WHILE EMAFast is > EMASlow and OR ADX && +DI && -DI is in range of 0 - 20.取引を終了する。

いずれかの条件が成立したら、ロングトレードをクローズします。

IF macd is -0.00, WHILE, EMAFast is < EMASlow and or ADX && +DI && -DI is in range of 0 - 20.取引を終了する

Majiさん。
ルールは数学的に定義する必要があります。もしチャネルを数学的に定義できるのであれば、コンピュータのコードに変換してみることもできますよ。

以上、お役に立ちましたでしょうか...入力の仕方を工夫するのに時間がかかりました(笑)

お分かりいただけたでしょうか?

真下

あと、チャートで、一箇所、黄色(左側)で買うのが遅かったと書いてありますが本当はもっと前に買っていたポジションを売っていたのです。実際には、あなたがチャート上でエントリーのマークをつけた数バー前に、プログラムがエントリー条件を満たしたことを検知してのエントリーだったと思います。例によって、私はルールを実装しようとしているだけなので、ルールがより正確に定義できれば、より簡単になります。

教えてくれてありがとうございます。

マジ

なるほど、いやはや、よくもまぁ、ほとんどを捉えることができたものだと感心してしまいました。 いい仕事してますね。

 

FXguyさん、ありがとうございます!でも、もっと混乱してしまいました。

私はこのようなルールを期待していました。

条件1と条件2と(条件3以外)...なら買い。

それを分解することで、私の頭を混乱させたのです。

ちなみに、ADXの値が低いときが一番いい買い方、売り方になります、チャートを見ていただければわかると思います。料理人が多すぎるとスープが台無しになるように、フィルターが多すぎるとシステムが台無しになると思うのです。基本的なシステムが堅牢であるなら、なぜそれをいじくり回すのか。どうあがいても、損失は出る。それを心配する必要はない。私は、あまりに多くのフィルターを扱うことができないし、3つか4つ以上のルールを持つシステムは、私の短い注意力の範囲を超えてしまうのです。

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

マジ

 

こんにちは。

申し訳ありません。

このシステムは、大きな動きだけを捉えて、小さな動きは捉えないように設計されています。

なので、ADX=25の時などを基準に管理するのはどうかと思います。

 

また、WorkAround4はどうかというと、他のものよりもさらにシンプルなものです。

LONG.

IF ADX & +DI > 20 == LONG

IF LONG and (+DI < 20) CLOSE the LONG Trade.

SHORT.

if adx & -di > 20 == short (アドックス・アンド・ダイ > 20)

IF SHORT および (-DI < 20) ショート・トレードをクローズ。

または

ワークアラウンド5

LONG:

IF +DI & -DI is equal (crossed over) wait for (+DI & ADX) > 20

IF LONG and (+DI < 20) LONGトレードをクローズします。

ショート

IF (+DI & -DI) is equal (crossed over) wait for (-DI & ADX) > 20

IF SHORT と (-DI < 20) ショート・トレードをクローズ。

 

何かシンプルにする方法はないかと考えていたのですが・・・以下、参考になればと思います。

簡単に言うと、ADXが20を超えて上昇していれば、現在のトレンドが強いことが確認できる(価格が上昇しているか下落しているかは関係ない)、+DIと-DIがクロスして、トレンド方向に関係する方(+DI=上昇トレンド、-DI+下降トレンド)が上昇して20を超えている必要がある、ということだ。

ワークアラウンド1:

LONG

====

DIと-DIがクロスしている場合、ADXと+DIの値が20以上であることを確認する。20以上なら買い。(DIと-DIがクロスした時、ADXと+DIが20でない場合もあるが、状態をみてから買う。)

売り

====

DIと-DIがクロスしている場合、ADXと-DIが20以上になっているかを確認。20以上であれば、売り。(DIと-DIがクロスした時、ADXと-DIが20でない場合もあるが、状態をみてから売る。)

ロングをクローズする。

=========

LONGポジションをクローズするには、EMAFastがEMASlowより大きいかどうかをチェックします。

ショートで決済。

==========

ショートポジションをクローズするには、EMAFast が EMASlow よりも小さいかどうか確認する。

---------------------------------

別の見方もあります。

WorkAround2です。

LONGです。

=====

DIと-DIがクロスしている場合、ADXと+DIの値が20以上であることと、通貨ペアの 価格がEMA1(EMAFast)の上にあることを確認する。その場合、買い。

ショート

======

DIと-DIがクロスしている場合、ADXと-DIの値が20以上であることと、通貨ペアの価格がEMA1(EMAFast)より下にあることを確認する。その場合、売り。

CLOSE Long:

=========

EMAFast が EMASlow よりも大きいことを確認し、LONG ポジションをクローズします。

ショートで決済。

==========

ショートポジションをクローズするには、EMAFastがEMASlowより小さいかどうか確認する。

OR

WorkAround3。

こちらはADXを使うだけで、他には何もしない。これは、S-A-R.(Stop And Reverse)です。WorkAround1と似ていますが、反対のシグナルを使って、クローズとリポープンを行います。

LONG

====

DIと-DIがクロスしている場合、ADXと+DIの値が20以上であることを確認する。20以上なら買い。

売り

====

DIと-DIがクロスしている場合、ADXと-DIの値が20以上であることを確認。20以上であれば、売り。

ロングを閉じる。

=========

DIと-DIがクロスしている場合、ADXと-DIの値が20以上であることを確認。ロングをクローズ。

売りでクローズ。

========

DIと-DIがクロスしている場合、ADXと+DIの値が20以上であることを確認。ショートで決済。

============

これでは余計に混乱するかな。私が絞り込める範囲で一番シンプルなのはこれです。