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
Question sur l'EA
Salut Codersguru,
J'essaie d'apprendre la programmation et j'utilise votre matériel, laissez-moi vous dire qu'il est excellent ! étape par étape et simple à suivre, merci pour cela.
J'ai une question, puisque vous utilisez le cross over ema comme exemple pour l'EA, je pensais utiliser l'indicateur stepMA_7.2 au lieu de l'ema. Pensez-vous que le stepMA_7.2 fonctionnera ? ou le code devra-t-il être réarrangé ou un code supplémentaire sera-t-il nécessaire ?
Je pensais qu'un simple changement d'indicateur dans le code devrait suffire.
Merci d'avance
Merci.
C'est faux : les barres précédentes sont positives comptées
Merci.
J'ai encore quelques problèmes. Les ordres d'achat sont ouverts correctement, mais ils sont tous fermés au niveau du stoploss, sans tenir compte des conditions de sortie.
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}Moyennemobile d'un autre indicateur
J'ai compris.
vérifier les positions ouvertes dans une fourchette
J'essaie de vérifier les positions ouvertes dans une fourchette de x pips, si aucune position n'est ouverte, il en ouvre une. Cela ne fonctionne pas et ouvre des positions en continu, quelqu'un peut-il m'aider ?
if(buyingPosition)
{
weBeBuying = true ;
totalorders = OrdersTotal() ;
for(i=0;i<totalorders;i++)
{
OrderSelect(i,SELECT_BY_POS) ;
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
type = OrderType() ;
if((type == OP_BUY) || (type == OP_BUYLIMIT))
{
si(((Bid+spread) - OrderOpenPrice()) > -0.0013)
weBeBuying = false ;
}
}
}
}
if(weBeBuying==true)
OrderSend(Symbol(),OP_BUY,lots,Bid+spread,slippage,0,0,NULL,magicNumber,0,Green) ;
MA d'un indicateur iCustom
Comment coder l'instruction dans un ea pour référencer une Moyenne Mobile de 7, Lisse, d'un indicateur iCustom ? Ce qui équivaut à utiliser une moyenne mobile en utilisant les données du premier indicateur. Vous pouvez le faire en affichant un indicateur iCustom et en ayant une MA de l'indicateur (en utilisant les données du premier indicateur), mais comment le coder dans une application ?
S'il vous plaît aidez-moi sur cette déclaration !
Je vous remercie d'avance pour votre aide !
Dave
Quelqu'un peut-il m'aider avec ceci ???? S'il vous plaît !!!!
Je crois que j'ai compris !
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0) ; //GAMMA INFÉRIEUR
J'ai toujours besoin d'aide sur ce sujet - Pouvez-vous m'aider !
Ici, vous pouvez poster vos questions relatives à MQL4, et je ferai de mon mieux pour y répondre.
pour le code d'erreur.
Je viens de me rendre compte que sur tous mes experts, j'ai un code d'erreur "OrderModify error 1", même avec un expert comme celui de Coders Guru, ci-dessous,
pourquoi ?
Merci !
//+------------------------------------------------------------------+
//| PriceCross.mq4 |
//| Coders Guru |
//| https://www.mql5.com/en/forum |
//+------------------------------------------------------------------+
#property copyright "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- Includes
#include
//---- Limites des transactions
extern double TakeProfit = 200 ;
extern double TrailingStop = 50 ;
extern double StopLoss = 50 ;
extern double Lots = 0.1 ;
extern int Slippage = 5 ;
//--- Options externes
extern int CurrentBar = 1 ;
extern int HedgeLevel = 6 ;
extern double Expiration = 7200 ;
extern int Size = 4 ;
extern int Step = 1 ;
extern bool UseClose = true ;
//--- Paramètres des indicateurs
extern int MaMode = 3 ;
extern int MaPeriod = 24 ;
//--- Variables globales
int MagicNumber = 101090 ;
string ExpertComment = "PriceCross" ;
bool LimitPairs = true ;
bool LimitFrame = true ;
int TimeFrame = 60 ;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"} ; // ajoutez/supprimez les paris que vous voulez limiter.
bool Optimize = true ;
int NumberOfTries = 5 ;
//+------------------------------------------------------------------
int init()
{
retour(0) ;
}
int deinit()
{
return(0) ;
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//boucle sur tous les ordres ouverts et compare les symboles
int total = OrdersTotal() ;
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
string selected_symbol = OrderSymbol() ;
si (symbole_actuel ==symbole_sélectionné && OrderMagicNumber()==NombreMagique)
retourne (Faux) ;
}
return (True) ;
}
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total,n ;
double tendance ;
if(Bars<100) {Print("bars less than 100") ; return(0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Cet EA ne fonctionne pas avec cette TimeFrame !") ; return(0);}
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Print("Cet EA ne fonctionne pas avec cette devise !") ; return(0);} }.
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar) ;
//--- Conditions de trading
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
si (Open[1]trend)
BuyCondition = true ;
si (Open[1]>tendance && Close[1]<tendance)
SellCondition = true ;
si (Open[1]>tendance && Close[1]<tendance)
CloseBuyCondition = true ;
si (Open[1]trend)
CloseSellCondition = true ;
total = OrdersTotal() ;
if(total < 1 || isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- condition BUY
{
ticket = OpenOrder(OP_BUY) ; //<-- Ouverture d'un ordre BUY
CheckError(ticket, "BUY") ;
for(n=0 ; n< Taille ; n++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) ;
}
return(0) ;
}
if(SellCondition) //<-- condition de VENTE
{
ticket = OpenOrder(OP_SELL) ; //<-- Ouvrir un ordre de VENTE
CheckError(ticket, "SELL") ;
for(n=0 ; n < Taille ; n++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration) ;
}
return(0) ;
}
return(0) ;
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Une position longue est ouverte
{
if(UseClose)
{
if(CloseBuyCondition) //<-- Fermer l'ordre et sortir !
{
CloseOrder(OrderType()) ; return(0) ;
}
}
TrailOrder(OrderType()) ; return(0) ; //<-- Traîter l'ordre
}
if(OrderType()==OP_SELL) //<-- Passer en position courte
{
if(UseClose)
{
if(CloseSellCondition) //<-- Fermer l'ordre et sortir !
{
CloseOrder(OP_SELL) ; return(0) ;
}
}
TrailOrder(OrderType()) ; return(0) ; //<-- Traîter l'ordre
}
}
}
return(0) ;
}
//+------------------------------------------------------------------+
....
Bonjour,
Est-il possible de savoir si un ordre est déjà clôturé ?
L'illustration est la suivante :
J'ouvre 2 ordres en attente.
open #182 buy limit 0.17 EURUSD at 1.3005 sl : 1.2970 tp : 1.3013
open #183 buy limit 0.17 EURUSD at 1.3000 sl : 1.2968 tp : 1.3011
puis
l'ordre #182, achat 0,17 EURUSD est ouvert à 1,3005
prise de profit #182 à 1.3013 (1.3013 / 1.3015)
Je veux supprimer l'ordre n°183 après la clôture de l'ordre n°182. Le déclencheur est le suivant : si l'ordre n°182 est clôturé, l'ordre n°183 sera supprimé.
Salutations