Indicateurs multitemporels - page 1127

 
Jeaa:

Chers tous... J'espère que vous allez très bien...

J'ai appris à programmer et j'ai fait un simple EA pour déterminer la valeur basse dans les 3 dernières barres et ouvrir un ordre d'achat... mais j'ai un problème, je n'ai pas mis l'ordre... Quelqu'un peut m'aider ? Le programme obtient le prix bas et montre l'alerte, mais ne met pas l'ordre d'achat...


Merci à l'avance...

//--------------------------------------------------------------------
// NewBar_jeaa_Rev 2.mq4
//--------------------------------------------------------------------
#property copyright "Jeaa"

extern int GV_CantidadBarras=3 ; // Cantidad de barras
extern int digits=5 ;
//--------------------------------------------------------------------
extern double Lots = 0.01 ;
extern double StopLoss = 100 ;
extern double TakeProfit = 100 ;
extern int Slippage = 3 ;


//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false ; // Flag de una nueva barra
//======================================================================

int start() // Fonction spéciale start()
{
double Precio ; // Variable qui enregistre le prix minimum et maximum.
//--------------------------------------------------------------------
Fun_NuevaBarra() ; // Appel de fonction
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra..
return ; // ..return
//=========================================================================

//int IndMax =ArrayMaximum(High,GV_CantidadBarras,1);// Indice de la barre de prix maximum
int IndMin =ArrayMinimum(Low, GV_CantidadBarras,1);// Indice de la barre du prix minimum

Precio=Low [IndMin] ;

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,StopLoss,TakeProfit, "My orderrr",16384,0,Blue) ;

Alert(Symbol()," : Barras= ",GV_CantidadBarras, // Mostrar mensaje de precios max y min
", Min= ",DoubleToString(Precio,digits)) ;

retour ;
}

void Fun_NuevaBarra() // Descripción de la Funcion que detecta ...
{ // .. una nueva barra
static datetime NewTime=0 ; // variable que almacena fecha y hora
GV_Flag_NuevaBarra=false ; // Inicialise une nouvelle barre à faux (no hay nueva barra)
if(NewTime!=Time[0]) // Si existe nueva barra el dato es distinto de cero...
{
NewTime=Time[0] ; //.. y en ese caso se registra el hora y fecha de la..
GV_Flag_NuevaBarra=true ; //nueva barra y se activa el flag que señaliza la...
//existence d'un nouveau barrage
}
}

Quelle erreur obtenez-vous dans les experts ou dans l'onglet journal du terminal ?
 
mladen:
Quelle erreur obtenez-vous dans les experts ou dans l'onglet journal du terminal ?

Bonjour mladen... Merci pour votre réponse...

2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1 : Alerte : USDJPY : Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1 : Alerte : USDJPY : Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1 : opérations commerciales non autorisées par les paramètres
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1 : initialisé
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 : entrées : GV_CantidadBarras=3 ; digits=5 ; Lots=0.01 ; StopLoss=100.0 ; TakeProfit=100.0 ; Slippage=3 ;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1 : chargé correctement


2016.09.06 12:57:08.587 '502630' : ordre d'achat 0.01 USDJPY ouverture au marché sl : 50.000 tp : 50.000 échoué [S/L ou T/P invalide].
2016.09.06 12:57:08.268 '502630' : ordre d'achat marché 0.01 USDJPY sl : 50.000 tp : 50.000
2016.09.06 12:56:07.224 '502630' : ordre d'achat 0.01 USDJPY ouverture au marché sl : 50.000 tp : 50.000 échoué [S/L ou T/P invalide].
2016.09.06 12:56:06.921 '502630' : ordre d'achat marché 0.01 USDJPY sl : 50.000 tp : 50.000
2016.09.06 12:56:04.221 Trading automatisé activé

 
Jeaa:

Bonjour mladen... Merci pour votre réponse...

2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1 : Alerte : USDJPY : Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1 : Alert : USDJPY : Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1 : opérations commerciales non autorisées par les paramètres
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1 : initialisé
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 entrées : GV_CantidadBarras=3 ; digits=5 ; Lots=0.01 ; StopLoss=100.0 ; TakeProfit=100.0 ; Slippage=3 ;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1 : chargé avec succès


2016.09.06 12:57:08.587 '502630' : ordre d'achat 0.01 USDJPY ouverture au marché sl : 50.000 tp : 50.000 échoué [S/L ou T/P invalide]
2016.09.06 12:57:08.268 '502630' : ordre d'achat marché 0.01 USDJPY sl : 50.000 tp : 50.000
2016.09.06 12:56:07.224 '502630' : ordre d'achat 0.01 USDJPY ouverture au marché sl : 50.000 tp : 50.000 failed [Invalid S/L or T/P]
2016.09.06 12:56:06.921 '502630' : ordre d'achat marché 0.01 USDJPY sl : 50.000 tp : 50.000
2016.09.06 12:56:04.221 Trading automatisé activé

Comme vous pouvez le voir, votre stop loss et votre take profit sont faux.

Vous les calculez mal : le stop loss et le take profit sont calculés comme le prix d'ouverture de l'ordre +- le stop loss et/ou le take profit (le + ou - dépend du type d'ordres) mais pas comme 50 (comme dans votre cas) mais ce serait le prix d'ouverture de l'ordre +- 50*_Point (pour les points) ou 50*_Point*MathPow(10,MathMod(_Digits,2)) pour la distance en pips du prix d'ouverture de l'ordre.

 
mladen:

Comme vous pouvez le voir, votre stop loss et votre take profit sont faux.

Vous calculez mal : le stop loss et le take profit sont calculés comme le prix d'ouverture de l'ordre +- le stop loss et/ou le take profit (le + ou - dépend du type d'ordre) mais pas comme 50 (comme dans votre cas) mais ce serait le prix d'ouverture de l'ordre +- 50*_Point (pour les points) ou 50*_Point*MathPow(10,MathMod(_Digits,2)) pour la distance en pips du prix d'ouverture de l'ordre.

Cher mladen...


Merci pour votre aide... J'ai changé pour :


double SL=NormalizeDouble(Precio - StopLoss*Point,Digits) ;
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits) ;

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue) ;


Et ça marche bien.


Meilleures salutations.


Jesús

 
Jeaa:

Cher mladen...


Merci pour votre aide... J'ai changé pour :


double SL=NormalizeDouble(Precio - StopLoss*Point,Digits) ;
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits) ;

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue) ;


Et ça marche bien.


Meilleures salutations.


Jesús

Bien. Bon trading :)
 

Bonjour à tous,

Pouvez-vous ajouter l'intervalle de temps dans le message d'alerte dans le fichier joint ?

Merci beaucoup :)

 

Cher Mladen,

Je m'excuse de poster cette demande ici car je ne connais pas le bon endroit.

Est-il possible d'ajouter une option de symbole actuel seulement dans l'indicateur ci-joint.

Si vous le pouviez, cela m'aiderait beaucoup :)

Merci.

Sameer

Dossiers :
 
DRADIS33:

Bonjour à tous,

Pouvez-vous ajouter l'intervalle de temps dans le message d'alerte dans le fichier joint ?

Merci beaucoup :)

Voici une version avec cet ajout


 
sameermehta74:

Cher Mladen,

Je m'excuse de poster cette demande ici car je ne connais pas le bon endroit.

Est-il possible d'ajouter une option de symbole actuel seulement dans l'indicateur ci-joint.

Si vous le pouviez, cela m'aiderait beaucoup :)

Merci.

Sameer

Vous avez une solution très facile. Ajoutez cette ligne :

      StringReplace(Symbols,"current",_Symbol);

avant la ligne 64, puis dans la liste des symboles entrez "current" n'importe où dans la chaîne (sans le ""), et il sera remplacé par le symbole actuel. Ou utilisez le fichier joint :) (mêmes règles pour le symbole courant appliquées: pour avoir seulement le symbole courant affiché, entrez seulement "courant" dans la liste des symboles)

Dossiers :
 
mladen:

Vous avez une solution très simple. Ajoutez cette ligne :

avant la ligne 64, puis dans la liste des symboles, entrez "current" n'importe où dans la chaîne (sans le ""), et il sera remplacé par le symbole actuel. Ou utilisez le fichier joint :) (mêmes règles pour le symbole courant appliquées : pour avoir seulement le symbole courant affiché, entrez seulement "courant" dans la liste des symboles)

Merci :) J'apprécie beaucoup.
Raison: