[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 456

 
sergeev писал(а) >>

en faire un Expert au lieu d'un script et contrôler le temps d'exécution du code de la fonction script dans l'Expert. Le moment est venu - exécutez le code du script.

J'ai compris de cette phrase que vos terminaux sont fermés. Je vous réponds - le script ne peut pas exécuter le terminal lui-même.

Tel que vous l'écrivez, c'est ainsi qu'il est compris. Si ce n'est pas ce que vous voulez dire, alors expliquez-vous plus clairement.

Quelle est la valeur de l'idée ? Si vous en aviez besoin à ce point, vous n'auriez pas demandé à un chirurgien de l'installer il y a longtemps... c'est pour vous personnellement.

1. Copiez le contenu du script.

2. Créer un nouvel EA en utilisant MetaEditor

3. Insérer le code du script

4. Comment ajouter la fonction de travail par heure et où l'insérer (je ne suis pas programmeur) ?

J'ai besoin du temps de travail de la fonction de 9h00 à 9h00.

Le code du script à éditer : (Merci d'avance à tous ceux qui nous aideront)

#property copyright "Kim Igor V. aka KimIV"
#lien de propriété "https://www.mql5.com/go?link=http://www.kimiv.ru/"
#property show_inputs

#import "kernel32.dll"
int GetUserDefaultLCID() ;
int GetLocaleInfoA(
int Locale, // identifiant de la locale
int LCType, // type d'information
string lpLCData, // adresse du tampon d'information
int cchData // taille du tampon
) ;
#import

//+------ Paramètres externes du script -------------------------------------------+
extern bool bCommission = False ; //Commissions de décharge
extern bool bSwap = True ; // Décharge les swaps
extern bool bComment = True ; // Décharge les commentaires
extern bool bMagic = True ; // Décharge le MagicNumber

// Constantes LCTYPE
#define LOCALE_SDECIMAL 0x000E // Caractères utilisés pour le séparateur décimal.

//+----------------------------------------------------------------------------+
//| fonction de démarrage du programme de script |
//+----------------------------------------------------------------------------+
void start() {
int dg, i, k=OrdersHistoryTotal() ;
string FileName=DoubleToStr(AccountNumber(), 0)+".csv" ; st ;

FileDelete(FileName) ;
st="Ticket;Open Time;Type;Lots;Item;Price;SL;TP;Close Time;Price" ;
if (bCommission) st=st+ ";Commission" ;
if (bSwap) st=st+ ";Swap" ;
st=st+ ";Profit" ; if (bSwap) st=st+ ";Profit ;
if (bMagic) st=st+ ";Magic" ;
if (bComment) st=st+ ";Comment" ;
WritingLineInFile(FileName, st) ;
for (i=0 ; i<k ; i++) {
si (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderType()<2) {
dg= MarketInfo(OrderSymbol(), MODE_DIGITS) ;
st= DoubleToStr(OrderTicket(), 0)+" ;";
st=st+TimeToStr(OrderOpenTime(), TIME_DATE|TIME_MINUTES)+" ;";
st=st+GetNameOP(OrderType())+" ;";
st=st+DoubleToStrLocale(OrderLots(), 2)+" ;";
st=st+OrderSymbol()+" ;";
st=st+DoubleToStrLocale(OrderOpenPrice(), dg)+" ;";
st=st+DoubleToStrLocale(OrderStopLoss(), dg)+" ;";
st=st+DoubleToStrLocale(OrderTakeProfit(), dg)+" ;";
st=st+TimeToStr(OrderCloseTime(), TIME_DATE|TIME_MINUTES)+" ;";
st=st+DoubleToStrLocale(OrderClosePrice(), dg)+" ;";
if (bCommission) st=st+DoubleToStrLocale(OrderCommission(), 2)+" ;";
if (bSwap) st=st+DoubleToStrLocale(OrderSwap(), 2)+" ;";
st=st+DoubleToStrLocale(OrderProfit(), 2)+" ;";
if (bMagic) st=st+DoubleToStr(OrderMagicNumber(), 0)+" ;";
if (bComment) st=st+OrderComment()+" ;";
WritingLineInFile(FileName, st) ;
}
Comment("Lire : ",i+1," de ",k) ;
}
}
Comment("Fichier écrit : ",FileName) ;
}

//+----------------------------------------------------------------------------+
//| Convertit une valeur numérique en une chaîne de caractères avec le système ||.
//| séparateur entre la partie entière et la partie fractionnaire. | |
//| Paramètres : |
//| v - nombre de type double |
//| d - nombre de chiffres après la virgule.
//+----------------------------------------------------------------------------+
string DoubleToStrLocale(double v, int d) {
si (d<0) d=0 ;
si (d>8) d=8 ;

string se=GetUserLocale(LOCALE_SDECIMAL), st=DoubleToStr(v, d) ;
if (se!=".") st=StrTran(st, ".", se) ;

retour(st) ;
}

//+----------------------------------------------------------------------------+
//| Nom de retour de l'opération commerciale |
//| Paramètres : |
//| op - identifiant de l'opération commerciale |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
cas OP_BUY : return("Buy") ;
cas OP_SELL : return("Sell") ;
case OP_BUYLIMIT : return("Buy Limit") ;
cas OP_SELLLIMIT : return("Limite de vente") ;
cas OP_BUYSTOP : return("Buy Stop") ;
cas OP_SELLSTOP : return("Sell Stop") ;
par défaut : return("Unknown Operation") ;
}
}

//+----------------------------------------------------------------------------+
//| Retour des paramètres régionaux de l'utilisateur. |
//| Paramètres : |
//| LCType - type de paramètre régional (constante LCTYPE) | |
//+----------------------------------------------------------------------------+
string GetUserLocale(int LCType) {
int loc=GetUserDefaultLCID() ;
string str=" " ;

GetLocaleInfoA(loc, LCType, str, 64) ;

retour(str) ;
}

//+----------------------------------------------------------------------------+
//| substituer la sous-chaîne |
//| Paramètres : |
//| str - ligne de texte, dans laquelle la substitution est effectuée |
//| strfrom - sous-chaîne à remplacer |
//| strto - substitution d'un substrat |
//+----------------------------------------------------------------------------+
string StrTran(string str, string strfrom, string strto) {
int n ;
string outstr="", tempstr ;

for (n=0 ; n<StringLen(str) ; n++) {
tempstr=StringSubstr(str, n, StringLen(strfrom)) ;
si (tempstr==strfrom) {
outstr=outstr+strto ;
n=n+StringLen(strfrom)-1 ;
} else outstr=outstr+StringSubstr(str, n, 1) ;
}
return(outstr) ;
}

//+----------------------------------------------------------------------------+
//| Écrire la chaîne de caractères dans le fichier |
//| Paramètres : |
//| FileName - nom du fichier ||
//| texte - chaîne de caractères ||
//+----------------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text) {
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ") ;

if (file_handle>0) {
FileSeek(file_handle, 0, SEEK_END) ;
FileWrite(file_handle, text) ;
FileClose(file_handle) ;
}
}
//+----------------------------------------------------------------------------+

 
Bonjour, pouvez-vous me dire dans quel dossier il faut mettre les polices dans MT4 ?
 
%windir% \Les polices de caractères
 

pour baltik


string NeedTime="9:00";
datetime time0=0;

//----------------------------------------------------------------------------
void start() 
{

 if ( time0>=StrToTime( NeedTime)) return; // если сегодня уже выполняли код
 if (TimeCurrent()<=StrToTime( NeedTime)) return; // если требуемое время ещё не наступио
 time0=TimeCurrent(); // иначе запоминаем время

// и делаем то что надо

// бла бла бла остальной код

Ce fil de discussion est destiné aux personnes qui apprennent à programmer, et non aux personnes qui vous demandent d'écrire pour elles.

 
sergeev >>:
%windir% \ fonts

Pouvez-vous rester simple, je ne comprends pas... quel genre de dossier est-ce ? ou qu'est-ce que c'est de toute façon ?

 
chepikds >>:

можно как-то попроще, я ничего не понял... это что за папка? или что это вообще такое?


En fait, la question "quel dossier pour mettre les polices dans MT4" n'est pas très claire non plus. Veuillez expliquer en russe. :)

Les polices ne sont pas stockées dans le terminal. Les polices sont gérées par le système d'exploitation.

 
sergeev >>:

вообще-то вопрос "в какую папку вставить шрифты в МТ4" тоже не очень понятен.

в терминале никакие шрифты не хранятся. шрифтами занимается операционная система.

OK, je vais essayer de le mettre dans le système d'exploitation...

 
Merci sergeev ,ça marche.
 
sergeev писал(а) >>

pour baltik

Ce fil de discussion est destiné aux personnes qui apprennent à programmer, et non aux personnes qui vous demandent d'écrire pour elles.

Merci.

Je vais apprendre :)

 

bonjour. j'ai écrit un EA simple, en utilisant des exemples du tutoriel. l'EA devrait signaler quand le prix sort de la fourchette, qui consiste en deux MAs. c'est-à-dire que si une barre s'est ouverte dans la fourchette et a commencé à monter et que son prix actuel est sorti de la fourchette, alors il émet un signal sonore. il en va de même pour la baisse. mais le problème est que je n'arrive pas à comprendre si je fais ceci

if (Bid > MA1 || Bid < MA2) // Vérification du passage de la fourchette
{
Alert("Price is outside the range.");// Message
}

Si le prix est supérieur à la fourchette, le conseiller expert m'alerte, mais si je fais cela :

if (Bid > MA1 && Fact_Up==true) // Vérifier le passage à la hausse
{
Fact_Dn=true ; // Signaler un prix supérieur à MA1
Fact_Up=false ; // Ne pas signaler un prix inférieur à MA1
Alert("Le prix est supérieur à la fourchette.");// Message
}
//--------------------------------------------------------------------
if (Bid < MA2 && Fact_Dn==true) // Vérifier le passage vers le bas
{
Fact_Up=true ; // Signaler un prix inférieur à MA2
Fact_Dn=false ; // Ne pas signaler un prix supérieur à MA2
Alert("Le prix est inférieur à la fourchette.");// Message
}

Si ce message est affiché, alors il n'est pas clair du tout, quand il donne un signal - parfois il donne un signal, parfois il ne le fait pas.

Je n'arrive pas à comprendre ce qu'est le "Fact_Up==true" et pourquoi il est nécessaire.