Questions des débutants MQL5 MT5 MetaTrader 5 - page 803

 

Une question simple.

Est-il possible de sortir du cycle de cette manière ? Ou cette simplicité n'est-elle pas gratuite ?

while(1)
{
 .........
 if(............ ) return;
 ..........
}
 

Une dernière question.

Il existe une structure MqlTick avec le champ suivant

longtime_msc;// Heure de la dernière mise à jour du prix en millisecondes

D'après ce que je comprends, time_msc stocke le nombre de millisecondes depuis 1970.

La fonction CopyTick a le paramètre suivant

ulongfrom=0,//date depuis laquelle les ticks sont demandés

Dans l'aide, il est précisé qu'il s'agit de "la date à partir de laquelle les ticks sont demandés". Spécifié en millisecondes depuis le 01.01.1970".

Question d'attention.

Pourquoi différents types de données sont utilisés dans la structure MqlTick et dans les paramètres de la fonction CopyTick ? Après tout, ils stockent tous deux le temps depuis 1970.

 
pivomoe:

Une dernière question.

Il existe une structure MqlTick avec le champ suivant

longtime_msc;// Heure de la dernière mise à jour du prix en millisecondes

D'après ce que je comprends, time_msc stocke le nombre de millisecondes depuis 1970.

La fonction CopyTick a le paramètre suivant

ulongfrom=0,//date depuis laquelle les ticks sont demandés

Dans l'aide, il est précisé qu'il s'agit de "la date à partir de laquelle les ticks sont demandés". Spécifié en millisecondes depuis le 01.01.1970".

Question d'attention.

Pourquoi différents types de données sont utilisés dans la structure MqlTick et dans les paramètres de la fonction CopyTick ? Après tout, ils stockent tous deux le temps depuis 1970.

ulong - type long non signé

 
Je le sais. Pourquoi utilise-t-on un type signé dans un cas et un type non signé dans l'autre ? Les cas sont similaires.
 
pivomoe:

Une question simple.

Est-il possible de sortir du cycle de cette manière ? Ou cette simplicité n'est-elle pas gratuite ?

Quel est le problème ? Résiliation par condition. Seulement si vous voulez juste sortir de la boucle, pas retourner mais casser.

 
Alexey Viktorov:

Qu'est-ce qui vous tracasse ? Fin de l'exécution par condition. Seulement si vous voulez juste sortir de la boucle, pas retourner mais casser.

Je ne comprends pas la consommation de mémoire après une telle boucle de retour qui sort ou non ?
 
pivomoe:
Je ne comprends pas la consommation de mémoire après un tel retour - sortie ou pas ?

Pourquoi le ferais-je ? Ne te mets pas la tête dans un tas d'idioties. Ce type de sortie fonctionnera rapidement.

 

Comment puis-je renoncer à un utilitaire (indicateur) gratuit téléchargé via le marché dans le terminal. La désinstallation n'est d'aucune utilité. Je continue à recevoir des messages concernant la mise à jour du produit, bien qu'il ait été désinstallé depuis longtemps.

 

Messieurs, aidez-moi à comprendre la situation, dans le Strategy Tester tout se passe sans erreurs et sans problèmes sur un compte de démonstration, aussi, mais quand je charge un EA dans le marché, Autotester dit :

2016.04.01 00:00:12 failed instant sell 0.10 EURUSD at 1.13780 sl : 1.14030 tp : 1.13030 [Invalid volume]
2016.04.01 00:00:24 failed instant sell 0.10 EURUSD at 1.13779 sl : 1.14029 tp : 1.13029 [Invalid volume]
2016.04.01 00:00:59 failed instant sell 0.10 EURUSD at 1.13782 sl : 1.14032 tp : 1.13032 [Invalid volume]
2016.04.01 00:01:00 failed instant sell 0.10 EURUSD at 1.13793 sl : 1.14043 tp : 1.13043 [Invalid volume]
2016.04.01 00:01:08 failed instant sell 0.10 EURUSD at 1.13783 sl : 1.14033 tp : 1.13033 [Invalid volume]
2016.04.01 00:01:17 failed instant sell 0.10 EURUSD at 1.13784 sl : 1.14034 tp : 1.13034 [Invalid volume]
2016.04.01 00:01:25 failed instant sell 0.10 EURUSD at 1.13774 sl : 1.14024 tp : 1.13024 [Invalid volume]
2016.04.01 00:01:34 failed instant sell 0.10 EURUSD at 1.13776 sl : 1.14026 tp : 1.13026 [Invalid volume]
2016.04.01 00:01:59 failed instant sell 0.10 EURUSD at 1.13778 sl : 1.14028 tp : 1.13028 [Invalid volume]
2016.04.01 00:02:00 failed instant sell 0.10 EURUSD at 1.13778 sl : 1.14028 tp : 1.13028 [Invalid volume]
2016.04.01 00:02:08 failed instant sell 0.10 EURUSD at 1.13776 sl : 1.14026 tp : 1.13026 [Invalid volume]

code de fonction ci-dessous :

OpenPos(NormalizeDouble(Lot,2), NormalizeDouble(Bid,_Digits), NormalizeDouble(_sl,_Digits),NormalizeDouble(_tp,_Digits),ORDER_TYPE_SELL,MagicSell,Comm);
void OpenPos(const double volume,const double price, const double stop, const double take, const ENUM_ORDER_TYPE o_type, const int magic,const string coment=NULL)
{
   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   string t=(o_type==ORDER_TYPE_BUY)?"Buy":"Sell";
   
   ZeroMemory(request);
   ZeroMemory(result);
   
   request.action=TRADE_ACTION_DEAL;
   request.symbol=Symbol();
   request.volume=volume;
   request.type=o_type;
   request.magic=magic;
   request.price=price;
   request.sl=stop;
   request.tp=take;
   request.comment=coment;
   
   if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK))
      request.type_filling=ORDER_FILLING_FOK;
   else if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC))
      request.type_filling=ORDER_FILLING_IOC;
   else
      request.type_filling=ORDER_FILLING_RETURN;
   
   if(!OrderSend(request,result))
      PrintFormat("Can't open position %s error %i",t,GetLastError());
}
 
Andrii Djola:

Je veux vous demander de m'aider à comprendre la situation, dans le Strategy Tester tout fonctionne sans aucune erreur ou problème, je n'ai également aucun problème sur mon compte de démonstration, mais lorsque je charge mon EA dans le marché, l'Autotester écrit :

Imprime le résultat de OrderCheck et sa structure complète. Faites de même avec OrderSend.

Créez des comptes de démonstration sur dix serveurs de négociation différents. Et essayez votre code là. Le plus souvent, une caractéristique particulière du serveur de négociation n'est pas prise en compte, ce qui est reproduit lors de la vérification dans le marché.

Et n'oubliez pas d'afficher LastError. L'ensemble de ces éléments vous permettra très rapidement de faire la lumière sur les causes de l'erreur.