Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1101

 
AlexeyVik:
Un billet peut-il être égal à zéro ?

Extrait de la documentation sur OrderSend() :

.......

Valeur de retour

Renvoie le numéro de ticket attribué à l'ordre par le serveur commercial ou -1 en cas d'échec. Pour obtenir les informations sur les erreurs, appelez GetLastError().

 
Sepulca:

Extrait de la documentation sur OrderSend() :

.......

Valeur retournée

Renvoie le numéro de ticket attribué à l'ordre par le serveur commercial ou -1 en cas d'échec. Pour obtenir les informations sur les erreurs, appelez GetLastError().

C'est exactement ce que je veux dire... Le numéro de ticket ne peut pas être 0 même dans le testeur, et en cas d'erreur la fonction renvoie -1, qui est inférieur à 0. J'ai donc demandé, dans quel cas le ticket peut être égal à zéro... Parce que la condition dit >= c'est-à-dire supérieur ou égal à...
 
h-l


Pouvez-vous me dire s'il existe un indicateur pour mt4 qui compte la volatilité sur le délai sélectionné ?

Par exemple pour les jours( H-L)n, où n-nombre de jours.

 
lempopo:


Pouvez-vous me dire s'il existe un indicateur pour MT4 qui calcule la volatilité sur une période sélectionnée ?

Par exemple pour les jours( H-L)n, où n-nombre de jours.

Est-ce la volatilité ?

"La volatilité est une mesure statistique de la tendance de la volatilité des prix". - C'est à peu près ce à quoi ressemble la définition.

La volatilité historique est une valeur égale à l'écart type de la valeur d'un instrument financier sur une période donnée, calculée sur la base de données historiques concernant sa valeur.

Et comme indicateur de la volatilité dans le terminal, il existe un indicateur de l'écart-type - l'écart-type.

 
AlexeyVik:
C'est ce que je dis... Le numéro de ticket ne peut pas être 0 même dans le testeur, et sur la fonction d'erreur renvoie -1, qui est inférieur à 0. J'ai donc demandé, dans quel cas le ticket peut être égal à zéro ... Parce que la condition dit >= c'est-à-dire supérieur ou égal à...

Avec le ticket tout est clair.j'ai une fonction pour déterminer le dernier ordre ouvert (selon le ticket) même par OrderTupy divisé.les gars la question est la suivante.complimator ne donne pas d'erreurs et dans le testeur pas d'erreurs mais l'ordre n'est pas modifié....why ????? si je ne peux pas comprendre mon erreur je ne peux pas le réaliser

si(OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask,Slippage,0,0, "first buy order set",Magik,0)== true)

{
TicketB = FindLastTicket(OP_BUY) ;
si(TicketB >0)
{
SL = priseBuy + NormalizeDouble(takeP1 * Point,Digits) ;
TP = priseBuy - NormalizeDouble(stopL1 * Point,Digits) ;
si(OrderModify(TicketB,priseBuy,SL,TP,0)== true)
Commentaire("hooraaaahhhhh") ;
}
 

Où puis-je trouver un assistant pour écrire un petit script à essayer gratuitement ?

 
burbur87:

J'ai la fonction de déterminer le dernier ordre ouvert (par ticket) même par OrderTupy.guys la question est la suivante : le complimateur ne donne pas d'erreurs et dans le testeur aucune erreur mais l'ordre n'est pas modifié....why ????? si je ne peux pas comprendre mon erreur je ne peux pas la réaliser


if(OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask,Slippage,0,0,"первый ордер бай установлен",Magik,0)== true)
      { 
          TicketB = FindLastTicket(OP_BUY);
          if(TicketB >0)
          {
             SL = priseBuy + NormalizeDouble(takeP1 * Point,Digits);
             TP = priseBuy - NormalizeDouble(stopL1 * Point,Digits);
             if(OrderModify(TicketB,priseBuy,SL,TP,0)== true)
             Comment("урааааааа");
            
          }

Utilisez le bouton SRC dans le panneau situé au-dessus de la fenêtre de saisie de texte.

En fait, ce n'est pas parce que le compilateur n'envoie pas d'erreurs que cela signifie quelque chose. Vous devez vérifier que le journal ne contient pas d'erreurs, et imprimer les conditions et les paramètres. Il s'agit de recommandations générales.

Exactement sur votre code : la fonction OrderSend() renvoie le numéro de ticket ou -1 en cas d'erreur. Si vous lisez attentivement la documentation relative aux types de données, en particulier le type bool, vous pouvez comprendre que la valeur fausse est 0. Tout le reste est vrai. Par conséquent, quelle que soit la façon dont la fonction OrderSend() se termine, la valeur booléenne sera toujours vraie.

Dans l'exemple ci-dessus, il n'est pas nécessaire de rechercher une commande de billets à l'aide d'une fonction supplémentaire, puisqu'elle sera renvoyée par OrderSend().

Les ordres à cours limité ne sont pas placés au prix courant. De quel type de modification parlons-nous si l'ordre ne doit pas être ouvert par une telle commande ?

 
virginvl:

Où puis-je trouver un assistant qui puisse écrire un petit script pour l'essayer gratuitement ?


Sur n'importe quel forum, quelques sujets avec des offres d'écrire gratuitement. Les gens apprennent à écrire...
 
virginvl:   Où puis-je trouver un assistant pour écrire un petit script à essayer gratuitement ?

L'assistant se trouve dans MetaEditor : File --> Create. Que doit faire le script ? Allez, écrivons-le ensemble ! !! Je vais l'expliquer étape par étape...


 
AlexeyVik:

Utilisez le bouton SRC dans le panneau situé au-dessus de la fenêtre de saisie de texte.

En substance : le fait que le compilateur ne génère pas d'erreurs ne signifie rien. Vous devez vérifier que le journal ne contient pas d'erreurs, et imprimer les conditions et les paramètres. Il s'agit de recommandations générales.

Exactement sur votre code : la fonction OrderSend() renvoie le numéro de ticket ou -1 en cas d'erreur. Si vous lisez attentivement la documentation relative aux types de données, en particulier le type bool, vous pouvez comprendre que la valeur fausse est 0. Tout le reste est vrai. Par conséquent, quelle que soit la façon dont la fonction OrderSend() se termine, la valeur booléenne sera toujours vraie.

Dans l'exemple ci-dessus, il n'est pas nécessaire de rechercher une commande de billets à l'aide d'une fonction supplémentaire, puisqu'elle sera renvoyée par OrderSend().

Les ordres à cours limité ne sont pas placés au prix courant. De quel type de modification parlons-nous si l'ordre ne doit pas être ouvert par une telle commande ?


Et le testeur a ouvert une position... De plus, cet ordre était comme un drapeau qui ouvrirait plus tard une grille...

void OnTick()

{

si(tendance == 1)

Comment("Dans les sept mois, la tendance est à l'achat") ;

else Comment("la tendance est à la baisse depuis sept mois") ;

double priseBuy = FindLastOrderPrise (OP_BUY) ;

double priseSel = FindLastOrderPrise (OP_SELL) ;


double frezeelevl = MarketInfo(OrderSymbol(),MODE_FREEZELEVEL) ;

rsi = iRSI(Symbole(),PERIOD_D1,7,PRICE_CLOSE,0) ;

trend = WhatTrend() ;

si (CountTrades() == 0)

{

si(trend == 1 && rsi <=30)

{ double vtoroilimt = NormalizeDouble (priseBuy - Vtoroilimit * Point,Digits) ;

double tretiilimit = NormalizeDouble (priseBuy - Tretiilimit * Point,Digits) ;

double hetvertiilimit = NormalizeDouble (priseBuy - Hetvertiilimit * Point,Digits) ;

double pervstop = NormalizeDouble (priseBuy + Pervstop * Point,Digits) ;

double vtoroistop = NormalizeDouble (priseBuy + Vtoroistop * Point,Digits) ;

si(OrderSend(Symbol(),OP_BUYLIMIT,0.04,Ask,Slippage,0,0, "first buy order set",Magik,0)== true)

{

OrderSend(Symbol(),OP_BUYLIMIT,0.06, Ask - vtoroilimt,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_BUYLIMIT,0.08, Ask - tretiilimit,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask - hetvertiilimit,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_BUYLIMIT,0.02,Ask - pervstop,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask - vtoroistop,Slippage,0,0,",Magik,0) ;

}

}// if(trend == 1 && rsi <=30)

sinon si(trend == 2 && rsi >= 70)

{ double vtoroilimt = NormalizeDouble (priseSel + Vtoroilimit * Point,Digits) ;

double tretiilimit = NormalizeDouble (priseSel + Tretiilimit * Point,Digits) ;

double hetvertiilimit = NormalizeDouble (priseSel + Hetvertiilimit * Point,Digits) ;

double pervstop = NormalizeDouble (priseSel - Pervstop * Point,Digits) ;

double vtoroistop = NormalizeDouble (priseSel - Vtoroistop * Point,Digits) ;

if(OrderSend (Symbol(),OP_SELLLIMIT,0.04,Bid,Slippage,0,0, "first order is set",Magik,0)== true)

{

OrderSend(Symbol(),OP_SELLLIMIT,0.06, Bid + vtoroilimt,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_SELLLIMIT,0.08, Bid + tretiilimit,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_SELLLIMIT,0.10,Bid + hetvertiilimit,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_SELLSTOP,0.02,Bid + pervstop,Slippage,0,0,",Magik,0) ;

OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid + vtoroistop,Slippage,0,0,",Magik,0) ;

}// if(OrderSend(Symbol(),OP_SELLLIMIT,0.10,Bid,Slippage,0,0, "first order is set",Magik,0)== true)


}// else if(trend == 2 && rsi >= 70)

}// if(CountTrades() == 0)


}

//+------------------------------------------------------------------+

le code se développe avec beaucoup d'agonie.mais sans modification d'ordre il n'y a rien du tout.je vais modifier le premier ordre.mais qu'est ce que le bouton cp ???

Raison: