Besoin d'aide pour créer un EA TRÈS simple

 
je n'ai jamais créé d'EA auparavant mais j'ai une transaction que je fais toutes les 30 minutes. je la négocie sur le gbpusd. lorsque la bougie actuelle de 30 minutes dépasse la bougie précédente d'un pip, j'entre pour aller chercher 5 pips. cela peut être un achat ou une vente, peu importe. j'ai quelques autres règles très simples pour cette transaction, donc j'ai besoin d'un EA qui fera cette transaction pour moi. quelqu'un peut-il m'aider s'il vous plaît ? ???
 
crazfoto:
Je n'ai jamais créé d'EA auparavant, mais j'ai une transaction qui a lieu toutes les 30 minutes. Je la négocie sur le gbpusd. Lorsque la bougie actuelle de 30 minutes dépasse la bougie précédente d'un pip, j'entre pour aller chercher 5 pips. cela peut être un achat ou une vente, peu importe. j'ai quelques autres règles très simples pour cette transaction, donc j'ai besoin d'un EA qui fera cette transaction pour moi. quelqu'un peut-il m'aider s'il vous plaît ?

Je peux peut-être vous aider si ce n'est pas trop compliqué.

merci de me fournir plus d'informations

 
doshur

Je pourrais être en mesure de vous aider si ce n'est pas trop compliqué.

veuillez me fournir plus d'informations

super. les seules règles sont :


entrer lorsque la bougie actuelle franchit le haut ou le bas de la bougie précédente de 30m par 1 pip (haut pour acheter, bas pour vendre).

ne tradez qu'une bougie qui a 20 pips ou plus.

Le stop est le plus bas (ou le plus haut) de la bougie précédente de 30 minutes une fois qu'un ordre est activé.

s'il n'y a pas de rupture de bougie ou d'ordre placé, alors attendez que la prochaine bougie de 30 minutes se forme et soit de 20 pips ou plus.


Je vais essayer un stop suiveur sur ce trade cette semaine pour voir si je peux gagner quelques pips supplémentaires. Mais 5 pips toutes les demi-heures, ce n'est pas mal.


Tenez-moi au courant. Merci encore

 

entrez lorsque la bougie actuelle franchit le haut ou le bas de la bougie précédente de 30m par 1 pip (haut pour acheter, bas pour vendre).

J'ai compris ce point


ne tradez qu'une bougie qui a 20 pips ou plus.

Vous voulez dire que le haut - bas de la bougie précédente donne 20 pips ou plus ?


Le stop est le plus bas (ou le plus haut) de la bougie précédente de 30 minutes une fois qu'un ordre est activé.

Veuillez expliquer davantage


s'il n'y a pas de rupture de bougie ou d'ordre placé, alors attendez la formation de la prochaine bougie de 30 minutes qui est de 20 pips ou plus.

Veuillez clarifier le point 2


:)


Salutations

Doshur

 
doshur:

entrez lorsque la bougie actuelle franchit le haut ou le bas de la bougie précédente de 30 m par 1 pip (haut pour acheter, bas pour vendre).

J'ai compris ce point


ne traitez qu'une bougie de 20 pips ou plus.

Vous voulez dire que le haut et le bas de la bougie précédente donnent 20 pips ou plus ?


Le stop est le plus bas (ou le plus haut) de la bougie précédente de 30 minutes une fois qu'un ordre est activé.

Veuillez expliquer plus


s'il n'y a pas de rupture de bougie ou d'ordre placé, alors attendez la formation de la prochaine bougie de 30 minutes de 20 pips ou plus.

Veuillez clarifier le point 2


:)


Salutations

Doshur

oui. la bougie précédente doit être de 20 pips ou plus pour pouvoir trader. de cette façon, nous avons un chanel de taille décente.


le stop

exemple :

le sommet précédent est 1.7500

le bas précédent est 1.7480

l'ordre d'achat serait 1.7001 tp 1.7506 st est 1.7480

ou la vente serait 1.7479 tp 1.7474 st est 1.7500



maintenant, si nous avons notre fourchette et qu'un ordre n'est jamais placé, c'est à dire que le marché ne franchit jamais le haut ou le bas pour activer un ordre, alors la fourchette précédente de 30 minutes est supprimée et la nouvelle bougie de 30 minutes (qui deviendrait maintenant notre fourchette précédente) deviendra les nouveaux chiffres à négocier.


exemple :


le haut précédent est 1.7550

le bas précédent est 1.7500

la nouvelle bougie de 30 minutes reste dans notre fourchette et un ordre n'est jamais activé.


nous obtenons une nouvelle bougie de 30m et la fourchette précédente est :

haut 1.7540

bas 1.7520


cela devient donc notre nouvelle fourchette de négociation et la fourchette 1.7550 - 1.7500 n'est pas prise en compte.


Est-ce que cela a un sens ? Je négocie avec des ordres en attente quand la nouvelle bougie de 30 minutes commence. Quand l'un des ordres est activé, je supprime l'autre. Donc si l'achat est activé, je supprime la vente en attente et vice versa. Si vous utilisez un robot, vous n'avez pas besoin d'avoir un ordre en attente.

 

Je suis clair maintenant.

Je vais commencer à coder ces jours-ci. Laissez-moi digérer.

:)

 
doshur:

Je suis clair maintenant.

Je vais commencer à coder ces jours-ci. Laissez-moi digérer.

:)

Je me demande si vous ne pourriez pas ajouter quelque chose qui double les lots entrés après une transaction ratée, juste pour la prochaine entrée après une transaction ratée. Cela aide à garder les pertes très basses.


Je vais le trader cette semaine en essayant un stop suiveur. Je ne l'ai jamais fait avant, j'ai toujours cherché à obtenir 5 pips.

 
crazfoto wrote >>

Je me demande si vous pourriez ajouter quelque chose qui doublerait les lots entrés après une transaction ratée, juste pour la prochaine entrée après une transaction ratée. Cela aide à garder les pertes très basses.

Je vais le trader cette semaine en essayant un stop suiveur. Je ne l'ai jamais fait avant, j'ai toujours cherché à obtenir 5 pips.

Stratégie intéressante. J'ai écrit le code suivant pour l'implémenter. Le code est fortement commenté donc vous devriez être capable de le comprendre et de le modifier. La stratégie n'a pas été très bien testée.

//+------------------------------------------------------------------+
//| 30Min Strategy.mq4 |
//| Copyright © 2008, Brendan Kelly |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Brendan Kelly"
#property link ""
extern string Order_Comment = "30Min Strategy" ;
extern double Lots = 0.1 ;
extern int TakeProfit = 5 ;

static bool ReadyToTradeThisBar = false ;
int MagicNumber = 9999 ;

int start()
{

if (NewBar()) // Ceci est fait au début de chaque nouvelle barre.
{
CloseAllOpenOrders() ; //Fermet d'abord toutes les transactions existantes de la barre précédente.
if(High[1] - Low[1]>= 20*Point) //si la barre précédente a au moins 20 de long
ReadyToTradeThisBar = true ; //alors nous pouvons négocier cette barre
else //sans
ReadyToToTradeThisBar = false ; //on ne peut pas négocier cette barre.
}

//Ceci est fait à chaque tick
if (ReadyToTradeThisBar == true) //si nous pouvons négocier cette barre
{
si (OrdersTotal() < 1) //et s'il n'y a pas de transaction en cours d'exécution
{
if(Ask > High[1] + 1*Point) //et si le prix actuel de la demande est supérieur au sommet de la barre précédente plus 1
{ // puis placer un ordre d'achat
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Low[1],Ask+ TakeProfit*Point,Order_Comment,MagicNumber,0,Blue) ;
ReadyToTradeThisBar = false ; //empêche les transactions ultérieures jusqu'à la clôture de la transaction en cours.
}
if(Bid < Low[1] - 1*Point) //et si le prix demandé actuel est inférieur au prix le plus bas de la barre précédente moins 1
{ //pour placer un ordre de vente
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,High[1],Bid- TakeProfit*Point,Order_Comment,MagicNumber,0,Red) ;
ReadyToTradeThisBar = false ; //empêche les transactions ultérieures jusqu'à la clôture de la transaction en cours.
}
}
}

return(0) ;
}//end


//##########################Fonctions d'assistance ##########################################

// Cette fonction renvoie la valeur true si la barre/chandelle actuelle vient d'être formée.
bool NewBar()
{
static datetime PreviousBar ;
if(PreviousBar<Time[0])
{
PreviousBar = Time[0] ;
return(true) ;
}
sinon
{
return(false) ;
}
return(false) ; // au cas où l'instruction if - else n'est pas exécutée
}

//Fermeture de tous les ordres ouverts et en attente
int CloseAllOpenOrders()
{
int OrderCount = OrdersTotal() ;
int index = 0 ;
int TicketNumber = 0 ;
for(index=OrderCount-1;index>-1;index--)
{
OrderSelect(index,SELECT_BY_POS,MODE_TRADES) ;
si (OrderMagicNumber()==MagicNumber)
{

TicketNumber = OrderTicket() ;
if(OrderType() == OP_BUY || OrderType() == OP_SELL )
{
OrderClose(TicketNumber,Lots,Bid,3,Red) ;
}
}
}
return(0) ;
}

Salutations

Brendan

 
Nice. serais-je en mesure de le modifier pour travailler sur une bougie 2hr aussi ? <br / translate="no">
 
je vois pourquoi cela ne fonctionne pas. il annule automatiquement chaque ordre toutes les demi-heures au lieu de laisser le marché l'arrêter ou prendre le profit. je vois beaucoup d'ordres qui auraient été payés mais le robot a fermé l'ordre. si cela peut être changé, je pense que les résultats seront meilleurs.
 

Merci Brendan pour le code.

Je n'ai pas encore testé le code mais il semble que si vous activez l'EA, il exécutera un ordre immédiatement si toutes les règles sont remplies même si le prix actuel est déjà 10pip au-dessus de la barre précédente.

Raison: