Questions des débutants MQL4 MT4 MetaTrader 4 - page 170
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
Salut ! Je fais une capture d'écran de l'écran en utilisant la fonction :
WindowScreenShot ("Screenshotname.png",1280,720) ; mais il enregistre tout dans le dossier Files, et je dois spécifier le chemin dans un autre dossier qui l'enregistrerait !
Bonjour !
A l'origine, la possibilité d'un verrouillage d'urgence par marge libre a été implémentée dans l'Expert Advisor. Voici une partie du code
si(AccountFreeMargin() <= inpMarginLock)
{
gv.isEmergencyLock = true ;
.....................
Au fil du temps, il est apparu que ce n'était pas tout à fait pratique.
Je voudrais mettre en place un blocage d'urgence par prélèvement.
Par exemple, lorsque le dépôt atteint, disons, -100 dollars, le verrou doit être activé.
Je voudrais demander mon aide, si je peux ajouter ce code à la place deAccountFreeMargin(), pour déclencher
Aidez-moi à écrire dans le code au lieu de ofFreeMargin() pour effectuer le blocage non pas sur la marge libre mais sur l'atteinte d'un drawdown sur le dépôt.
Merci d'avance !!!!!!!
Bonjour, j'ai un problème, quand j'appuie sur F9 j'ai le menu habituel pour ouvrir un ordre mais je dois choisir une paire de symboles, pas comme avant, le menu sort pour le symbole que j'ai ouvert, conseillez-moi comment le réparer.
Service --> Paramètres --> Trading
Bonjour)
Aidez moi s'il vous plait, je suis un débutant..... essayant de faire un EA sur l'intersection des indicateurs super-signals-channel et ZigZag a trouvé un modèle. J'ai mis les indicateurs là-dedans, mais les ordres ne s'ouvrent toujours pas. Voici une partie du code.... ce que je fais mal... ?
void Signal(double& ar[][],bool& op[],bool& cl[])
{
int trd=-1 ;
double up=0.0,dn=0.0 ;
//---
ArrayInitialize(cl,false) ;
ArrayInitialize(op,false) ;
//connecter l'indicateur de filtre ZigZag
up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//nom, paramètres, tampon, bougie de départ pour BUY
dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//nom, paramètres, tampon, début de bougie pour SELL
si(dn==EV) trd=0 ;
if(up==EV) trd=0 ; //Comment(trd) ;
//connecter l'indicateur de marche arrière et de sortie
up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//début de bougie pour BUY
dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//début de la bougie de VENTE
si(up>0.0 && up<EV) cl[1]=vrai ;
if(dn>0.0 && dn<EV) cl[0]=true ;
up=0.0 ;
dn=0.0 ;
// indicateur de base, par lequel nous entrons sur le marché
interrupteur (Indicateur)
{
cas SuperSignalsChannel :
up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//début de la bougie pour BUY
dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//début de la bougie de VENTE
pause ;
P.S. S'il y a un fil similaire sur le forum quelque part, laissez le lien, s'il vous plaît.
Bon après-midi. J'ai cet EA, j'essaie de le modifier pour l'adapter à mes besoins, mais jusqu'à présent, il n'est pas très bon. Les ordres s'ouvrent au prix haut et bas, mais j'ai besoin qu'il soit haut + 5 pips. Je sais que cela est responsable de cela, mais je ne peux pas l'appliquer dans le code. J'espère de l'aide. Merci))))
Bon après-midi. J'ai cet EA, j'essaie de le modifier pour l'adapter à mes besoins, mais jusqu'à présent, il n'est pas très bon. Les ordres s'ouvrent au prix haut et bas, mais j'ai besoin qu'il soit haut + 5 pips. Je sais que cela est responsable de cela, mais je ne peux pas l'appliquer dans le code. J'espère de l'aide. Merci))))
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
Bonjour, veuillez dire à un jeune adepte où le chien est enterré)).
J'ai modifié un peu le Momentum, je l'ai testé et il semble qu'il fonctionne, mais lorsque j'essaie de l'utiliser dans un Expert Advisor, j'obtiens des résultats étranges, il semble suivre le bon algorithme, mais je ne sais pas d'où vient le 0,0449 supplémentaire.
input int InpMomPeriod=1 ; // Période de Momentum
void OnTick()
{
double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0) ;
}
Bonjour, chers programmeurs.
Bravo à vous !
Il existe un EA qui, après la clôture des ordres et l'envoi d'un message,
Je dois désactiver l'auto-trading sur le terminal (appuyer sur le bouton).
Il ne le fait pas si l'utilisateur est déconnecté du serveur UPN.
Lorsque l'utilisateur est connecté au serveur cps et que le terminal est ouvert, des fenêtres sont ouvertes,
le conseiller-expert est en cours d'exécution, l'appui sur le bouton fonctionne bien.
mais lorsque vous exécutez le Conseiller Expert, déconnectez vous du serveur PPS
et après avoir reçu un message indiquant que l'Expert Advisor a fonctionné
lorsque vous revenez à l'UPU, le bouton n'est pas pressé.
L'Expert Advisor fonctionne sur le serveur UPP Windows Server 16.
Cette partie du code est responsable de cette fonction
if(AutotradeOFF)PressOrReleaseAutotrade() ;
Conclusion - cette fonction ne fonctionne pas lorsque l'utilisateur est déconnecté du serveur VPS.
Peut-être existe-t-il des alternatives pour résoudre le problème ?
Quel peut être le problème ?
Veuillez m'aider à résoudre ce problème.
Le code est joint.
Merci beaucoup d'avance pour toute aide à la résolution de ce problème !