[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 993
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
Alors, affichez-le sur le côté gauche de l'écran - quelle est la différence ? - La ligne aura le prix à droite - le texte du message à gauche...
ou le faisceau - mais alors tout est du côté gauche...
C'est la demande du client :) D'autres indicateurs sont utilisés à gauche afin que l'un ne se superpose pas à l'autre.
Bon, je vais résoudre le problème, merci à tous pour votre participation !
Bonjour, j'ai une question : existe-t-il un moyen d'optimiser un conseiller sur plusieurs paires de devises simultanément dans MT4 ?
Vous pouvez exécuter plusieurs MT4 en même temps avec l'optimisation d'un EA sur différentes paires.
Si c'est interdit, alors dites-lui que je l'autorise.
essayez d'inventer pour attribuer le delta
delta = 1 ; if (digits = 5) {delta = 10;}
et dans le texte ajouter
si (Bid <=Low&& Ask < High - 10*Point*delta)
Ce n'est probablement pas tout à fait exact, mais le sens est clair.
delta = Point ; if(digits = 5) {delta = 10*Point;}
if (Bid <=Low&& Ask < High - 10*delta) bien qu'il n'y ait pas de différence, mais... et moi ?
et la question suivante sur les spreads dynamiques nécessite de calculer le spread moyen sur N ticks,
J'ai dessiné le schéma suivant mais je ne suis pas sûr qu'il soit correct :
int TicSpred=100 ;
double Spread [10000] ;
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
si (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--){Spread[p]=Spread[p-1];}
Spread[0]=(Ask-Bid)/delta ;
double CountedSpred ;
for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}
double Aversired=CountedSpred/TicSpred ; mais je ne suis pas sûr que ce soit correct, et il ne semble pas compter correctement pour cinq chiffres
Non, ce n'est pas du tout ça.
J'ai besoin d'écrire chaque étalement suivant dans un tableau, et de le diviser par le nombre d'étalements dans le tableau, et dès que le nombre d'enregistrements atteint N, je dois supprimer le premier dans le tableau
peut-on faire quelque chose de plus simple ?
Il y a également une erreur ici
si (Bid >=High ) // Fermeture de la baie
retour (11) ;
si (Bid <=Low && Ask <High - 1*delta )
return (21) ; // Vente à la clôture
si (commerce == 1){
si ( Bid <=Low ) // Ouvrir la baie
Imprimez (" Baie = ",11) ;
retour (10);}
if (Time == 1){
if (Bid<=Low&&Ask<High -1*delta ) // Ouverture de Srll
Imprimez (" Sell= ",21) ;
retour (20);}
return ; // si le temps n'est pas bon, n'ouvrez pas quelque chose ; sortez simplement.
Les variables suivantes High et Low sont connues (j'ai vérifié avec une empreinte) et le prix présente les conditions suivantes
1.si l'achat > Haut, alors nous envoyons une commande 10 (fermeture de l'achat).
2. si l'achat est inférieur au bas et que le haut est inférieur au bas d'un point, alors fermez-le avec un retour de 11.
si la variable Time == 1 alors :
3. si l'offre est inférieure ou égale au bas et que la demande est inférieure au haut d'au moins un point, alors ouvrez l'achat.
4. si l'offre est supérieure ou égale à l'offre haute, alors nous ouvrons la vente ?
Je tiens à rappeler que ce programme est entièrement à partir du tutoriel, je ne change que les critères de négociation, respectivement, la commande 10, 20 tous standard, je vais attacher toutes les fonctions qui sont appelés juste au cas où
Les gens ! Bonjour à tous ! Au secours !
J'ai besoin d'écrire un intervalle de temps dans la fonction de l'indicateur d'alerte. Par exemple, une fenêtre s'ouvre quand un signal apparaît et nous pouvons voir à partir de quel graphique ce signal est apparu. M15 par exemple.
J'ai fait des recherches sur le site, mais je ne trouve rien de tel.
Les gens ! Bonjour à tous ! Au secours !
J'ai besoin d'écrire un intervalle de temps dans la fonction de l'indicateur d'alerte. Par exemple, une fenêtre s'ouvre quand un signal apparaît et nous pouvons voir à partir de quel graphique ce signal est apparu. M15 par exemple.
J'ai fait des recherches sur le site, mais je ne trouve rien de tel.
Quoi qu'il en soit, cette fonction
//--------------------------------------------------------------------
// Criterion.mqh
// destiné à être utilisé comme exemple dans le tutoriel MQL4.
//--------------------------------------------------------------- 1 --
// Fonction de calcul des critères de transaction.
// Valeurs retournées :
// 10 - ouverture Achat
// 20 - Ouverture de la vente
// 11 - clôture Achat
// 21 - Vente de clôture
// 0 - aucun critère significatif
// -1 - un autre instrument financier est utilisé
//--------------------------------------------------------------- 2 --
// Variables externes :
//--------------------------------------------------------------- 3 --
int Criterion() // Fonction utilisateur
{
//----------------------------------------------------------------4----
chaîne Sym="________" ;
if (Sym!=Symbol()) // Si ce n'est pas notre fin.
{
Inform(16) ; // message.
return(-1);} // ...et sortir
delta = Point ;
if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY", 0) != -1)))
delta= Point *10 ;
int Digital=MarketInfo(Symbol(),12) ;
//--------------------------------------------------------------- 5 --
// Paramètres pour l'indicateur technique :
bool trade ;
if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}
si (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}
{si (trade==0 && mag!=Mag) return(0);}
// --------------------------Calculer l'écart moyen-----------------------
if (!IsTesting() || IsVisualMode() || !IsOptimization())
{
int TicSpred=100 ;
double Spread [10000] ;
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
si (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}
Spread[0]=(Ask-Bid)/delta ;
double CountedSpred ;
for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}
double Averaged=CountedSpred/TicSpred ;
}
//--------------------------------------------------------------- 5 --
// Calcul des critères de négociation
si (Bid >=High ) // Fermeture de la baie
retour (11) ;
si (Bid <=Low )
return (21) ; // Vente à la clôture
si (commerce == 1){
if ( Bid <=Low &&Ask<High -0.5*MyPoint ) // Baie ouverte
Imprimez (" Baie = ",11) ;
retour (10);}
si (commerce == 1){
if (Bid>=High ) // Ouverture du Srll
Imprimez (" Vente = ",21) ;
retour (20);}
return ; // si l'heure est mauvaise, n'ouvrez rien ; sortez simplement.
//--------------------------------------------------------------- 6 --
return(0) ; //sortir de la fonction utilisateur
}
//--------------------------------------------------------------- 7 --
il est supposé que les variables Low et High ont déjà été définies et sont correctes