BrainSystem : Développement de systèmes de trading et transactions - page 15

 
jpsdyb:
J'ai noté 1 minute 0 seconde avant la fin de la barre.

Qu'est-ce que vous utilisez pour afficher cette information ?

Merci de votre compréhension.

Rien, c'est juste un indicateur qui montre le temps restant jusqu'à la clôture de la barre. Voici l'indicateur que vous pouvez utiliser. Certaines stratégies comme le CCI de Woodi utilisent le temps restant jusqu'à la clôture de la barre pour ouvrir un ordre.

ok ?

Dossiers :
 

Kamyar, merci mille fois !

J'ai essayé de modifier le script et le test de compilation metaeditor 0 erreurs et 0 avertissements. Il ne fonctionne toujours pas cependant, et je suis confus quant à la raison. Je sais qu'il faut changer l'option enable alerts à 1, mais c'est l'indicateur lui-même qui pose problème. Il ne se charge pas correctement.

Merci

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

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

}

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

J'ai toujours l'espoir que nous aurons un EA pour ce système pour l'alarme, la confirmation et pour tout (pas pour le trading). Dans ce cas, il sera très facile de faire du commerce en utilisant ce système. Je pense que nous l'aurons bientôt.

Mais maintenant, je réfléchis à la façon d'utiliser ce système sans la confirmation M15 et sur une échelle de temps inférieure à H1.

Pour l'instant, je regarde les graphiques M30 et j'espère que cela fonctionnera.

Quoi qu'il en soit, je ferai un test en avant dès demain. Mais je pense qu'il sera nécessaire de changer certaines règles pour cette stratégie de trading.

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

Veuillez trouver les indicateurs et le modèle que je veux évaluer.

J'espère toujours trouver des règles pour ce système de trading sur le cadre temporel M15 ou M30.

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

Bien.

Je veux juste voir comment ça marche.

Les règles n°1.

Entrer sur BT1sig et BT2 sig. Cela ne doit pas être sur la même barre surtout. Et cela doit être confirmé par le SAR et l'indicateur I-XO. Nous pouvons attendre une barre de plus après le signal pour la confirmation de I-XO. BT1sig et BT2sig doivent être confirmés par SAR sur les mêmes barres que les signaux. Par exemple, si nous avons un signal d'achat de BT1sig (par exemple), nous recherchons le SAR. Si c'est une tendance haussière pour le SAR sur la même barre que le signal, nous attendons BT2sig (par exemple). Le deuxième signal doit être confirmé par le SAR également. Si tout va bien, nous attendons la confirmation par I-XO (pas plus d'une barre après le dernier signal). C'est le cas le plus difficile. Bien sûr, si nous avons tout (deux signaux et deux confirmations sur la même barre), c'est parfait.

Nous ne prenons en compte que les barres complètes.

Le cas le plus difficile a déjà été décrit et vous pouvez le voir sur l'image 1.

La sortie sur le SAR est très simple (image 2).

Ce sont des règles très simples et flexibles.

Pourquoi les règles 1 ?

Parce que je ne suis pas sûr que nous aurons finalement ces règles. Tout le monde peut suggérer d'autres règles, ou je peux changer celle-ci.

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

Dès vendredi matin, nous devrions avoir les éléments suivants :

EURUSD.

acheter 1.2127 à 19h30 (20/01) et sortir 1.2233 à 06h30 (23/01) : +106 p.

acheter 1,2259 à 10h30 (23/01) et sortir 1,2285 (l'ordre peut être encore ouvert) : +26 p.

USDCHF.

vendre 1,2820 à 14h30 (20/01) et sortir 1,2666 à 07h30 (23/01) : +154 p.

vendre 1,2628 à 10h30 (23/01) et sortir 1,2233 (l'ordre peut être encore ouvert) : +54 p.

GBPUSD.

acheter 1,7583 à 10h30 (20/01) et sortir 1,7794 à 05h00 (23/01) : +214 p.

vendre 1.7763 à 08:30 (23/01) et sortir 1.7798 à 10:30 (23/01) : -35 p.

acheter 1.7798 à 10h30 (23/01) et sortir 1.7866 (l'ordre peut être encore ouvert) : +68 p.

USDJPY.

achat 155,32 à 16h30 (20/01) et sortie 155,14 à 00h00 (23/01) : -18 p.

vendre 114,79 à 02:00 (23/01) et sortir 114,78 à 10:00 (23/01) : +1 p.

vendre 114,30 à 10h30 (23/01) et sortir 114,62 à 16h00 (23/01) : -32 p.

538 p au total.

Je pense que cette règle n°1 est trop flexible.

Peut-être.

 

Je serais très heureux si quelqu'un estimait d'autres règles (avec d'autres indicateurs possibles, le cas échéant). Mais je pense que les règles doivent être réalistes. Par exemple, j'ai compté le profit sur des données historiques (ce qui n'est pas bon bien sûr, car il devrait s'agir de tests prospectifs), mais je l'ai compté comme un robot (comme un EA par exemple) en suivant entièrement les règles. J'ai utilisé des données historiques juste pour être sûr que cela fonctionne.

 

salut newdigital

Merci pour votre effort. J'ai quelques questions

1.quel est le devoir de l'indicateur stochastique dans votre système ?

2.nous devrions obtenir le signal bt1 d'abord et le signal bt2 ensuite ou il peut être dans n'importe quelle sorte ?

3.qu'est ce que c'est exactement les zones remplies.je pense que vous voulez dire que nous ne devons pas trader dans les zones.ok ?

Merci

 

vous avez mentionné que les signaux bt ne devraient pas être dans la même barre. d'après ce que j'ai compris, nous ne devrions pas faire de transactions dans ce cas. le décririez-vous ? ai-je raison ?

 
newdigital:
Je serai très content si quelqu'un estime d'autres règles (avec d'autres indicateurs possibles, le cas échéant). Mais je pense que les règles doivent être réalistes. Par exemple, j'ai compté le profit sur des données historiques (ce qui n'est pas bon bien sûr, car il devrait s'agir d'un test en amont), mais je l'ai compté comme un robot (comme un EA par exemple) en suivant pleinement les règles. J'ai utilisé des données historiques juste pour être sûr que cela fonctionne.

Je teste actuellement une nouvelle stratégie sur Eur/Usd 1HR en utilisant Braintrend2, Stochastics, et 2 indicateurs LSMA-color. Jusqu'à présent, en parcourant les graphiques de l'historique, les résultats semblent être assez valables. Les règles sont assez simples à utiliser. Si seulement j'avais BraintrendSig2 avec des alertes, je pourrais faire des tests plus fréquents. Je vais continuer à tester la stratégie et poster les résultats bientôt.