Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
stevenpun Vous dites que l'achat a 0,1 lot + 0,2 lot et que la vente devrait être de 0,4 lot. Pourriez-vous le clarifier ?
Bonjour mladen, désolé pour la réponse tardive.
J'ai été malade pendant quelques jours.
J'ai fait une image
Par exemple, lorsque l'achat a 2 ordres ouverts (0.1 Lot + 0.2 Lot), mais soudainement le train a changé pour vendre.
L'ea ouvrira une vente par 0.1 Lot, mais je veux qu'il ouvre pour 0.4 Lot.
Est-il possible de le modifier ?
Bonjour encore une fois,
J'ai essayé d'utiliser la fonction ci-dessus avec un commentaire, mais elle n'affichait que le maximum. Pouvez-vous m'aider avec deux fonctions ? L'une affichant le prix de la ligne immédiate au-dessus de l'offre et la seconde la ligne au-dessous de l'offre. Merci.
Voici le code.
//+------------------------------------------------------------------+
//| SimpleGrid.mq4+
//+------------------------------------------------------------------+
#include
#include
#property strict
// variables exportées
extern string GridStartingPrice = " Prix de départ pour placer des lignes " ;
extern double GSP = 0.0 ;
extern int GR = 5 ;
extern double GridStep = 5 ;
extern color CGL = Gold ;
extern color BGL = Green ;
extern color SGL = Rouge ;
extern bool ClearAllObjects = False ;
// variables locales
double PipValue=1 ; // cette variable est ici pour supporter les courtiers à 5 chiffres
bool Terminated = false ;
string LF = "\n" ; // utilisez cette variable dans les blocs personnalisés ou utilitaires où vous avez besoin de sauts de ligne.
int NDigits = 4 ; // utilisé principalement pour NormalizeDouble dans les blocs de type Flex
int ObjCount = 0 ; // compte de tous les objets créés sur le graphique, permet la création d'objets avec des noms uniques
int current = 0 ;
int init()
{
NDigits = Digits ;
if (false) ObjectsDeleteAll() ; // efface le graphique
Comment("") ; // efface le graphique
return(0) ;
}
// Démarrage de l'expert
int start()
{
si (Bars < 10)
{
Comment("Pas assez de barres") ;
retour (0) ;
}
if (Terminé == true)
{
Comment("EA Terminated.") ;
retour (0) ;
}
OnEveryTick7() ;
return (0) ;
}
void OnEveryTick7()
{
PipValue = 1 ;
if (NDigits == 3 || NDigits == 5) PipValue = 10 ;
CentreGridLine() ;
}
void CentreGridLine()
{ if (ObjectFind("CGL") == (-1) )
{
{
string objName = "CGL" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0],GSP) ;
ObjectSet(objName, OBJPROP_PRICE1, GSP) ;
ObjectSet(objName, OBJPROP_COLOR,CGL) ;
}
TradeLine() ;
UprBnd() ;
LwrBnd() ;
}
}
void TradeLine()
{
int i ;
double GridStep1= (GridStep*2) ;
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double SGSP= (GSP-((GridStep/2)*PipValue*Point)) ;
double BBGSP= (BGSP-((GridStep*(GR))*PipValue*Point)) ;
double SSGSP= (SGSP+((GridStep*(GR))*PipValue*Point)) ;
{
for(i=0 ; i<GR;i++)
{
SGL("Vendre "+i,BBGSP+GridStep1*i*PipValue*Point) ;
}
}
{
for(i=0 ; i<GR;i++)
{
BGL("Buy "+i,SSGSP-GridStep1*i*PipValue*Point) ;
}
}
}
void BGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price) ;
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID) ;
ObjectSet(objName, OBJPROP_WIDTH, 1) ;
ObjectSet(objName, OBJPROP_COLOR, BGL) ;
}
void SGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price) ;
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID) ;
ObjectSet(objName, OBJPROP_WIDTH, 1) ;
ObjectSet(objName, OBJPROP_COLOR, SGL) ;
}
void UprBnd()
{ if (ObjectFind("UPRBND") == (-1) )
{
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double price= (BGSP+((GridStep*(GR))*PipValue*Point)) ;
string objName = "UPRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price ) ;
ObjectSet(objName, OBJPROP_PRICE1,price) ;
ObjectSet(objName, OBJPROP_COLOR, DodgerBlue) ;
ObjectSet(objName, OBJPROP_WIDTH,3) ;
}
}
void LwrBnd()
{ if (ObjectFind("LWRBND") == (-1) )
{
double SGSP= (SGSP-((GridStep/2)*PipValue*Point)) ;
double price= (SGSP-((GridStep*(GR))*PipValue*Point)) ;
string objName = "LWRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price ) ;
ObjectSet(objName, OBJPROP_PRICE1,price) ;
ObjectSet(objName, OBJPROP_COLOR, Tomate) ;
ObjectSet(objName, OBJPROP_WIDTH, 3) ;
}
}
int deinit()
{
if (ClearAllObjects) ObjectsDeleteAll() ;
retourne (0) ;
}
//+------------------------------------------------------------------+Hermès
Pouvez-vous joindre le fichier mq4 ?
Hermès Pouvez-vous joindre le fichier mq4 ?
C'est ici. Merci
Bonjour,
J'ai besoin d'aide avec une Ea que j'ai faite, elle est liée à 2 moyennes mobiles et 2 timeframes différents pour filtrer la tendance, je voudrais ajouter un indicateur RSI afin de filtrer les trades, configurer par exemple RSI période 8 niveau 50, si plus haut que RSI niveau 50 au croisement on ouvre seulement des ordres de marché de vente, si plus bas que RSI niveau 50 au croisement on ouvre seulement des ordres de marché d'achat. Je joins le Ea, au début il était lié aux keltnerchannels, mais maintenant je veux qu'il soit utilisé comme Ma1 et Ma2.
Est-ce que quelqu'un peut m'aider avec ces changements ?
Merci de votre aide.
Le voici. Merci
Hermès
Essayez ceci : simpleg_1.mq4
Bonjour,
J'ai besoin d'aide avec une Ea que j'ai faite, elle est liée à 2 moyennes mobiles et 2 timeframes différents pour filtrer la tendance, je voudrais ajouter un indicateur RSI afin de filtrer les trades, configuration par exemple RSI période 8 niveau 50, si plus haut que RSI niveau 50 au croisement on ouvre seulement des ordres de marché de vente, si plus bas que RSI niveau 50 au croisement on ouvre seulement des ordres de marché d'achat. Je joins le Ea, au début il était lié aux keltnerchannels, mais maintenant je veux qu'il soit utilisé comme Ma1 et Ma2.
Est-ce que quelqu'un peut m'aider avec ces changements ?
mercidaniel1983
Il est presque certain que vous n'obtiendrez jamais de croisements de mas et rsis en même temps (ce qui signifie que vous n'obtiendrez presque jamais de signaux). Essayez : créez un indicateur simple qui fait ce que vous décrivez et vous verrez à quel point ces conditions sont rares en même temps.
daniel1983 Il est presque certain que vous n'obtiendrez jamais de croisements de mas et de rsis en même temps (ce qui signifie que vous n'obtiendrez presque jamais de signaux). Essayez-le : créez un indicateur simple qui fait ce que vous décrivez et vous verrez à quel point ces conditions sont rares en même temps.
Salut Mladen,
Je veux dire
- à n'importe quel niveau entre 0 et 50 seulement vendre
- à n'importe quel niveau entre 50 et 100 seulement acheter,
pas à ce même point d'intersection, le croisement peut se faire à n'importe quel niveau (43, 41, 18, 25) pour les ordres d'achat sur le marché, confirmant la tendance du cadre temporel supérieur. J'ai testé ceci et environ 80% des ordres ouverts semblent avec ce filtre ne pas s'ouvrir dans la direction opposée.
Actuellement, l'Ea ouvre un ordre d'achat lorsque le croisement commence une tendance à la baisse, avec ce filtre, dans 80% des cas, il filtrera ce croisement sans entrer l'ordre à ce point. où ces croisements Ma.
Dans cette Ea, j'ai entré une image temporelle supérieure, mais j'ai fait des tests avec de meilleurs résultats en utilisant une image temporelle inférieure pour filtrer la tendance.
Je joins une image d'un exemple de test configuré :
Pour EURUSD
Dans ce cas, j'utilise EMA 2 et EMA 67, et RSI (8) timeframe 1min et Hitimeframe 5min, dans ce cas vous avez un ordre d'achat sur le marché qui n'est pas rentable, cet ordre d'achat sur le marché se produit au croisement des EMa's mais avec RSI à un niveau inférieur à 50.
Ensuite, vous avez un ordre de marché de vente qui s'ouvre aux croisements mais avec un RSI inférieur à 50, et cet ordre est l'ordre de marché correct que je veux filtrer de tous les signaux.
Est-il possible de faire cela ?
Je vous remercie.
Daniel
Hermes Essayez ceci : simpleg_1.mq4
Bonjour Mladen,
Cela fonctionne enfin en utilisant ceci. Merci à vous
void LoopBS()
{
double max =(ObjectGet("UPRBND",OBJPROP_PRICE1)) ;
double min =(ObjectGet("LWRBND",OBJPROP_PRICE1)) ;
for (int i =ObjectsTotal()-1 ; i>=0 ; i--)
{
string name = ObjectName(i) ;
si (StringSubstr(name,0,3)=="Buy")
{
double BS=ObjectGet(name,OBJPROP_PRICE1) ;
si ((Ask<BS) && (BSmin))
{
max = ObjectGet(name,OBJPROP_PRICE1) ;
{
Commentaire(DoubleToStr(BS,Chiffres)," ") ;
}
}
}
}
}
Signaux imprécis
Signaux imprécis
Chers artisans ! Pourriez-vous signaler mieux à faire. M1, M5, M15
Signaux imprécis Chers artisans ! Pourriez-vous faire de meilleurs signaux. M1, M5, M15
Il montre simplement si les 3 dernières clôtures sont supérieures ou inférieures aux 3 dernières ouvertures. Rien à améliorer dans cela