ブレインシステムズトレーディングシステムの開発とトレード - ページ 15

 
jpsdyb:
私はバーエンドまで1分0秒に気づきました。

この情報を表示するために何を使っているのですか?

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

これは、バークローズまでの残り時間を表示するインジケーターです。

ということです。

ファイル:
 

Kamyarさん、ありがとうございます。

また、BrainTrendSig2にenable alertを追加する方法をご存知の方はいらっしゃいますか? スクリプトを修正し、metaeditor compile test 0 errors and 0 warningsを試しました。しかし、それはまだ動作していない、私はなぜとして混乱しています。有効なアラートを1に変更することは分かっているのですが、インジケータ自体に問題があるようです。それは正しくロードされません。

ありがとうございます。

//+------------------------------------------------------------------+

//| BrainTrend2.mq4 |

//| www.forex-tsd.com |

//| Nick Bilak |

//+------------------------------------------------------------------+

#property copyright "BrainTrading Inc."

#property link "www.forex-tsd.com"

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int NumBars=500;

extern int EnableAlerts=0;

extern int SignalID=0;

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double spread;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_ARROW);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexArrow(0,233);

SetIndexStyle(1,DRAW_ARROW);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexArrow(1,234);

spread=MarketInfo(Symbol(),MODE_SPREAD)*Point;

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start() {

int counted_bars=IndicatorCounted();

//----

int artp=7;

double dartp=7.0;

double cecf=0.7;

int satb=0;

int Shift=0;

bool river=True;

double Emaxtra=0;

double widcha=0;

double TR=0;

double Values[100];

int glava=0;

double ATR=0;

int J=0;

double Weight=0;

double r=0;

double r1=0;

int p=0;

int Curr=0;

double Range1=0;

double s=2;

double f=10;

double val1=0;

double val2=0;

double h11=0;

double h12=0;

double h13=0;

double const=0;

double orig=0;

double st=0;

double h2=0;

double h1=0;

double h10=0;

double sxs=0;

double sms=0;

double temp=0;

double h5=0;

double r1s=0;

double r2s=0;

double r3s=0;

double r4s=0;

double pt=0;

double pts=0;

double r2=0;

double r3=0;

double r4=0;

double tt=0;

double tsig=0;

if( Bars < NumBars) satb = Bars; else satb = NumBars;

if( Close[satb - 2] > Close[satb - 1]) river = True; else river = False;

Emaxtra = Close[satb - 2];

Shift=satb-3;

while(Shift>=0) {

TR = spread+ High[Shift] - Low[Shift];

if( MathAbs(spread+ High[Shift] - Close[Shift + 1]) > TR ) TR = MathAbs(spread+ High[Shift] - Close[Shift + 1]);

if( MathAbs(Low[Shift] - Close[Shift + 1]) > TR) TR = MathAbs(Low[Shift] - Close[Shift + 1]);

if (Shift == satb - 3 ) {

for(J=0;Shift<=artp-1;J++) {

Values[J] = TR;

}

}

Values[glava] = TR;

ATR = 0;

Weight = artp;

Curr = glava;

for (J = 0;J<=artp - 1;J++) {

ATR += Values[Curr] * Weight;

Weight -= 1.0;

Curr--;

if (Curr == -1) Curr = artp - 1;

}

ATR = 2.0 * ATR / (dartp * (dartp + 1.0));

glava++;

if (glava == artp) glava = 0;

widcha = cecf * ATR;

if (river && Low[Shift] < Emaxtra - widcha) {

river = False;

Emaxtra = spread+ High[Shift];

}

if (!river && spread+ High[Shift] > Emaxtra + widcha) {

river = True;

Emaxtra = Low[Shift];

}

if (river && Low[Shift] > Emaxtra) {

Emaxtra = Low[Shift];

}

if (!river && spread+ High[Shift] < Emaxtra ) {

Emaxtra = spread+ High[Shift];

}

Range1 = iATR(NULL,0,10,Shift);

val1 = 0;

val2 = 0;

if (river) {

if (p != 1) r1 = Low[Shift] - Range1 * s / 3.0;

if (p == 1) r1 = -1.0;

if (r1 > 0) {

val1 = r1;

val2 = 0;

} else {

val1 = 0;

val2 = 0;

}

ExtMapBuffer1[Shift]=val1;

p = 1;

} else {

if (p != 2) r1 = spread+ High[Shift] + Range1 * s / 3.0;

if (p == 2) r1 = -1.0;

if (r1 > 0) {

val1 = 0;

val2 = r1;

} else {

val1 = 0;

val2 = 0;

}

ExtMapBuffer2[Shift]=val2;

p = 2;

Shift--;

}

}

if (EnableAlerts == 1)

{

if (val1 > 0 && tsig != 1)

{

tsig = 1;

// a1 = FileOpen("alert1" + SignalID,";");

Alert("BrainTrend2Sig", "Sell " ,Symbol() ," at ", Close[0] , " S/L " , val1 , " BT1 M" ,Period());

//a1=FileOpen("alert1"+ SignalID,FILE_CSV|FILE_WRITE,';');

// FileWrite(a1,"Sell " ,Symbol() ," at ", Close[0] , " S/L " , val1 , " BT1 M" ,Period());

// FileClose(a1);

}

if (val2 > 0 && tsig != 2)

{

tsig = 2;

Alert("BrainTrend2Sig", "Buy " , Symbol() , " at " ,Close[0] ," S/L " ,val2 ," BT1 M" , Period());

//a1 = FileOpen("alert1" + SignalID,";");

// a1=FileOpen("alert1"+ SignalID,FILE_CSV|FILE_WRITE,';');

// FileWrite(a1,"Buy " , Symbol() , " at " ,Close[0] ," S/L " ,val2 ," BT1 M" , Period());

//FileClose(a1);

}

}

//----

return(0);

}

//+------------------------------------------------------------------+
 

このシステムには、アラーム、確認、その他(取引用ではない)すべてのEAを用意してほしいという希望がまだあります。この場合、このシステムを使った取引は非常に簡単になる。近いうちに実現すると思います。

しかし、今、私は、M15確認なしで、H1未満の時間枠でこのシステムを使用する方法を考えています。

今、私はM30のチャートを見て、それがうまくいくことを望んでいます。

とにかく明日からフォワードテストをしてみようと思います。しかし、この取引 戦略のルールをいくつか変更する必要があるような気がします。

ファイル:
1_23.gif  30 kb
2_16.gif  31 kb
3_6.gif  32 kb
4_4.gif  30 kb
 

評価したいインジケーターとテンプレートがあります。

M15またはM30のタイムフレームで取引するこのシステムのためのいくつかのルールを見つけることを期待しています。

ファイル:
indicators.zip  16 kb
bt7_m30.zip  4 kb
 

まあね。

どう動くか見てみたいだけ。

ルールその1。

BT1sigとBT2sigで入力する。特に同じバーであってはならない。そして、SARとI-XOインジケータで確認すること。I-XOの確認が取れるまで、シグナルが出た後1バー以上待つこともある。BT1sigとBT2sigは、シグナルと同じバーでSARによって確認される必要があります。例えば、BT1sigから買い シグナルが出た場合、SARを探します。もし、シグナルと同じバーでSARの上昇トレンドであれば、BT2sig(例)を待ちます。2つ目のシグナルはSARで確認する必要があります。もし、問題なければ、I-XOによる確認(最後のシグナルから1バー以内)を待ちます。これは最も難しいケースです。もちろん、すべて(同じバー上の2つのシグナルと2つの確認)があれば、完璧です。

私たちは、完全なバーだけを考慮しています。

最も難しいケースは、すでに説明したとおりで、画像1を見ていただければわかると思います。

出口は非常にシンプルなSARにあります(画像2)。

非常にシンプルで柔軟なルールです。

なぜ1号ルールなのか?

なぜなら、最終的にこのルールになるかどうかわからないからです。皆さんから他のルールが提案されるかもしれませんし、私がこのルールを変更するかもしれません。

ファイル:
2_17.gif  28 kb
1_24.gif  28 kb
 

金曜日の朝からは、以下のようになるはずです。

EURUSD

19:30 (20/01) に 1.2127 を買って、06:30 (23/01) に 1.2233 をエグジットする。+106 p.

10:30 (23/01)に1.2259を買って、1.2285を出る(まだ注文が残っている可能性がある)。+26 p.

USDCHF

14:30 (20/01)に1.2820を売り、07:30 (23/01)に1.2666を決済する。+154 p.

10:30 (23/01)に1.2628を売って、1.2233をエグジットする(注文がまだ残っている可能性がある)。+54 p.

GBPUSD

10:30 (01/20)に1.7583を買って、05:00 (01/23)に1.7794をエグジットする。+214 p.

08:30 (23/01)の売り1.7763と10:30 (23/01)の出口1.7798:-35 p.

10:30 (23/01)に1.7798を買って、1.7866を抜ける(まだ注文が残っている可能性がある)。+68 p.

USDJPY.

16:30 (20/01) に 155.32 の買いと 00:00 (23/01) に 155.14 の売り:-18 p.

02:00 (23/01) の 114.79 を売り、10:00 (23/01) の 114.78 を決済する。+1 p.

10:30(23/01)に114.30を売り、16:00(23/01)に114.62をエグジット:- 32p.

合計538 pです。

このルール1番は柔軟すぎるのでは?

かもしれません。

 

もし誰かが他のルール(もしあれば他の可能な指標も)を見積もってくれたらとてもうれしいです。しかし、私はそのルールは現実的なものであるべきだと思います。例えば、私は過去のデータで利益を計算しましたが(もちろんそれはフォワードテストであるべきなのでよくありません)、私は完全にルールに従ってロボット(例えばEA)としてそれを計算しました。ヒストリカルデータを使ったのは、それが機能することを確認するためです。

 

こんにちは、newdigitalです。

あなたの努力に感謝します。

1.ストキャスティックインジケーターは どのように使用されていますか?

2.最初にbt1シグナルを取得し、次にbt2シグナルを取得すべきでしょうか、それともどのような種類でもよいのでしょうか?

3.充填されたゾーンは正確に何ですか。私はあなたが私たちがzones.okで取引してはならないということだと思います?

感謝

 

BTシグナルは同じバーにあるべきでないとのことですが、私の知る限りでは、この場合取引すべきではないでしょうか。

 
newdigital:
他のルール(もしあれば、他のインジケータを使ったルール)も試算してもらえるとうれしいです。しかし、そのルールは現実的なものであるべきだと思う。例えば、私は過去のデータで利益を計算しましたが(もちろんそれはフォワードテストであるべきなので、良いことではありません)、私はロボット(例えばEA)として完全にルールに従ってそれを計算しました。ヒストリカルデータを使ったのは、それが機能することを確認するためです。

現在、Braintrend2、Stochastics、LSMA-colorの2つの指標を使って、Eur/Usd 1HRで新しい戦略をテストしているところです。今のところ履歴のチャートを見てみると、かなり価値のある結果になっているようです。ルールはかなりシンプルに使えています。BraintrendSig2にアラートがあれば、もっと頻繁にテストができるのですが。今後もストラテジーの検証を続け、近日中に結果を掲載する予定です。