BrainSystem: Sviluppo di sistemi di trading e compravendite - pagina 15

 
jpsdyb:
Ho notato 1 minuto e 0 secondi alla fine della barra.

Cosa stai usando per mostrare queste informazioni?

Grazie, grazie

niente, è solo un indicatore che mostra il tempo rimanente alla chiusura della barra, ecco l'indicatore che puoi usare, alcune strategie come il CCI di Woodi usano il tempo rimanente alla chiusura della barra per aprire un ordine.

ok?

File:
 

Kamyar, grazie mille!

qualcuno sa anche come aggiungere l'avviso di abilitazione a BrainTrendSig2? Ho provato a modificare lo script e metaeditor compile test 0 errori e 0 avvisi. Ancora non funziona però, e sono confuso sul perché. So di cambiare enable alerts a 1, ma è l'indicatore stesso il problema. Non si carica correttamente.

Grazie

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

//| 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);

}

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

Ho ancora la speranza che avremo un EA per questo sistema per l'allarme, la conferma e per tutto (non per il trading). In questo caso sarà molto facile fare trading con questo sistema. Penso che lo avremo presto.

Ma ora sto pensando a come usare questo sistema senza conferma M15 e su timeframe inferiori a H1.

In questo momento sto guardando i grafici M30 e spero che funzioni.

Comunque farò un test in avanti a partire da domani. Ma sento che sarà necessario cambiare alcune regole per questa strategia di trading.

File:
1_23.gif  30 kb
2_16.gif  31 kb
3_6.gif  32 kb
4_4.gif  30 kb
 

Si prega di trovare gli indicatori e il modello che voglio valutare.

Spero ancora di trovare alcune regole per questo sistema di trading su timeframe M15 o M30.

File:
indicators.zip  16 kb
bt7_m30.zip  4 kb
 

Bene.

Voglio solo vedere come funziona.

Le regole #1.

Entrare su BT1sig e BT2 sig. Non dovrebbe essere sulla stessa barra soprattutto. E dovrebbe essere confermato dal SAR e dall'indicatore I-XO. Possiamo aspettare una barra in più dopo il segnale per la conferma di I-XO. BT1sig e BT2sig dovrebbero essere confermati da SAR sulle stesse barre con i segnali. Per esempio, se abbiamo un segnale di acquisto da BT1sig (per esempio) stiamo cercando SAR. Se è uptrend per SAR sulla stessa barra con il segnale stiamo aspettando BT2sig (per esempio). Anche il secondo segnale dovrebbe essere confermato dal SAR. Se tutto è ok aspettiamo la conferma di I-XO (non più di 1 barra dopo l'ultimo segnale). E' il caso più difficile. Naturalmente se abbiamo tutto (due segnali e due conferme sulla stessa barra) è perfetto.

Stiamo prendendo in considerazione solo le barre complete.

Il caso più difficile l'ho già descritto e lo potete vedere nell'immagine 1.

L'uscita sul SAR è molto semplice (immagine 2).

Si tratta di regole molto semplici e flessibili.

Perché le regole #1?

Perché non sono sicuro che alla fine avremo queste regole. Ognuno può suggerire altre regole, o io posso cambiare questa.

File:
2_17.gif  28 kb
1_24.gif  28 kb
 

Da venerdì mattina dovremmo avere quanto segue:

EURUSD.

comprare 1.2127 alle 19:30 (20/01) e uscire da 1.2233 alle 06:30 (23/01): +106 p.

comprare 1.2259 alle 10:30 (23/01) e uscire da 1.2285 (l'ordine potrebbe essere ancora aperto): +26 p.

USDCHF.

vendere 1.2820 alle 14:30 (20/01) e uscire da 1.2666 alle 07:30 (23/01): +154 p.

vendere 1.2628 alle 10:30 (23/01) e uscire da 1.2233 (l'ordine può essere ancora aperto): +54 p.

GBPUSD.

comprare 1.7583 alle 10:30 (20/01) e uscire da 1.7794 alle 05:00 (23/01): +214 p.

vendere 1.7763 alle 08:30 (23/01) e uscire da 1.7798 alle 10:30 (23/01): -35 p.

comprare 1.7798 alle 10:30 (23/01) e uscire da 1.7866 (l'ordine può essere ancora aperto): +68 p.

USDJPY.

comprare 155.32 alle 16:30 (20/01) e uscire da 155.14 alle 00:00 (23/01): -18 p.

vendere 114.79 alle 02:00 (23/01) e uscire da 114.78 alle 10:00 (23/01): +1 p.

vendere 114.30 alle 10:30 (23/01) e uscire a 114.62 alle 16:00 (23/01): -32 p.

538 p in totale.

Penso che questa regola #1 sia troppo flessibile.

Può essere.

 

Sarei molto contento se qualcuno valutasse altre regole (con altri possibili indicatori, se ce ne sono). Ma penso che le regole dovrebbero essere realistiche. Per esempio ho contato il profitto sui dati storici (che non è buono ovviamente perché dovrebbe essere un test in avanti) ma l'ho contato come un robot (come un EA per esempio) seguendo pienamente le regole. Ho usato i dati storici solo per essere sicuro che funzionasse.

 

ciao newdigital

grazie per il tuo sforzo.ho alcune domande

1.qual è il dovere dell'indicatore stocastico nel tuo sistema?

2.we dovrebbe ottenere bt1signal prima e il bt2signal poi o può essere in qualsiasi tipo?

3.cosa è esattamente le zone riempite.penso che tu intenda che non dovremmo commerciare nelle zone.ok?

grazie

 

hai menzionato che i segnali bt non dovrebbero essere nella stessa barra. per quanto ho capito non dovremmo commerciare in questo caso. l'avresti descritto. ho ragione?

 
newdigital:
Sarei molto contento se qualcuno valutasse altre regole (con altri possibili indicatori, se ce ne sono). Ma penso che le regole dovrebbero essere realistiche. Per esempio ho contato il profitto sui dati storici (che non è buono ovviamente perché dovrebbe essere un test in avanti) ma l'ho contato come un robot (come un EA per esempio) seguendo pienamente le regole. Ho usato i dati storici solo per essere sicuro che funzionasse.

Attualmente sto testando una nuova strategia su Eur/Usd 1HR usando Braintrend2, Stocastico e 2 indicatori LSMA-color. Finora, esaminando i grafici storici, i risultati sembrano essere abbastanza validi. Le regole sono abbastanza semplici da usare. Se solo avessi BraintrendSig2 con avvisi, potrei fare test più frequenti. Continuerò a testare la strategia e pubblicherò presto i risultati.