[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 572

 
neisseria:
J'ai essayé de créer un EA basé sur une pièce de monnaie, pile pour acheter, face pour vendre. Mais ça ne marche pas. Lors de l'essai dans une fenêtre il y a une inscription : Lors de l'ouverture de l'erreur d'ordre 131, dans l'application a regardé - il n'est pas le volume correct. J'ai regardé attentivement, je ne trouve pas d'erreur. Il y a un point partout, pour séparer la partie entière, et non une virgule. Aidez-moi, s'il vous plaît. Le code est dans le fichier.
Le compte permet-il un lot de 0,01 ? Peut-être un lot minimum de 0,1 ?
 
neisseria:
J'ai essayé de créer un EA, basé sur la pièce, l'aigle achète, la queue vend. Mais cela n'a pas fonctionné. Lors du test, j'ai obtenu le message suivant dans la fenêtre : Erreur 131 lors de l'ouverture de l'ordre, j'ai regardé dans l'application, ce n'est pas le volume correct. J'ai regardé attentivement, je ne trouve pas d'erreur. Il y a un point partout, pour séparer la partie entière, et non une virgule. Aidez-moi, s'il vous plaît. Le code est dans le fichier.


utiliser :

MinLot= MarketInfo( symbol(),MODE_MINLOT )// Taille de lot minimale possible

StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Pas minimum de changement de lot

Le lot doit être >= MinLot et normalisé en utilisant Lot=NormalizeDouble(Lot,Dig) ;

où Dig = Nombre de chiffres après le point décimal StepLota, c'est-à-dire StepLot=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Par exemple, avec MinLot=0,1 et StepLot=0,01 :

Le lot peut être de 0,1, 0,11, 0,12 etc. Mais il ne peut pas être 0,99, 0,98 et il ne peut certainement pas être 0,998, 0,999, 0,111, 0,101.

 
Sepulca:


utiliser :

MinLot= MarketInfo( symbol(),MODE_MINLOT )// Taille de lot minimale possible

StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Pas minimum de changement de lot

Le lot doit être >= MinLot et normalisé en utilisant Lot=NormalizeDouble(Lot,Dig) ;

où Dig = Nombre de chiffres après le point décimal StepLota, c'est-à-dire StepLot=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Par exemple, avec MinLot=0,1 et StepLot=0,01 :

Le lot peut être de 0,1, 0,11, 0,12, etc. Mais il ne peut pas être 0,99, 0,98 et il ne peut certainement pas être 0,998, 0,999, 0,111, 0,101.


Par exemple, avec MinLot=0,1 et StepLot=0,01:

Le lot peut être de 0,1, 0,11, 0,12 etc. Mais ça ne peut pas être 0,99, 0,98.

Pas possible... vraiment ?

88 ou 89 fois augmentent le lot de l'échelon minimum. Par exemple - le lot de chaque position suivante ouverte doit être augmenté de l'échelon minimum. C'est-à-dire ajouter carrément l'échelon minimum de changement de lot au lot de la position précédente. La 98ème position à ouvrir aura le lot 0.98, respectivement, le lot de la 99ème position sera augmenté d'un pas minimal 0.98+0.01=0.99...

Pensez-vous que DT ne se laissera pas ouvrir avec un tel lot ?

 
artmedia70:

Par exemple avec MinLot=0.1 et StepLot=0.01:

Le lot peut être de 0,1, 0,11, 0,12 etc. Mais ça ne peut pas être 0,99, 0,98...

Pas possible... vraiment ?

88 ou 89 fois augmentent le lot de l'échelon minimum. Par exemple - le lot de chaque position suivante ouverte doit être augmenté de l'échelon minimum. C'est-à-dire ajouter carrément l'échelon minimum de changement de lot au lot de la position précédente. La 98ème position à ouvrir aura le lot 0.98, respectivement, le lot de la 99ème position sera augmenté d'un pas minimal 0.98+0.01=0.99...

Pensez-vous que les sociétés de courtage n'autoriseront pas l'ouverture avec un tel lot ?
.


Merde .... Faux, bien sûr. Ça ne peut pas être 0,09, 0,08.

Et stupide ou non, c'est à l'auteur de l'évaluation environnementale d'en décider.

 
kellin:
Non, bien sûr, je dois ouvrir avec un ordre d'achat ou de vente à l'ouverture de la barre suivante ou de l'une des barres suivantes. Et je prévois aussi de fermer par un ordre, en l'attribuant par le nombre de points de l'ouverture.

Plus tard (en fin de semaine), je posterai ici le code pour ouvrir un ordre de marché - soit d'achat ou de vente (au choix), à l'ouverture d'une nouvelle bougie.
 
Sepulca:


utiliser :

MinLot= MarketInfo( symbol(),MODE_MINLOT )// Volume de lot minimum possible

StepLot= MarketInfo( symbol(),MODE_STEPLOT )// Pas minimum de changement de lot

Le lot doit être >= MinLot et normalisé en utilisant Lot=NormalizeDouble(Lot,Dig) ;

où Dig = Nombre de chiffres après le point décimal StepLota, c'est-à-dire StepLot=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Par exemple, avec MinLot=0,1 et StepLot=0,01 :

Le lot peut être de 0,1, 0,11, 0,12 etc. Mais cela ne peut pas être 0.99, 0.98 et encore moins 0.998,0.999, 0.111,0.101

Je connais déjà cette information. Chez mon courtier, le lot minimum est de 0,01, le pas de 0,01. Je l'ai changé en 0,1 et en 1 lot pour la conscience, rien ne sort, l'erreur est dans autre chose.
 

Au fait, je n'ai pas l'intention d'utiliser cet Expert Advisor, je suis juste en train d'apprendre le langage de programmation. En fait, j'ai décidé pour le plaisir de voir comment cela va fonctionner sur le testeur, je viens de lire que le générateur de nombres aléatoires ne donne pas de tels nombres aléatoires, car il se répète. Le problème ne semble pas résider dans l'erreur d'orthographe du numéro, mais dans l'algorithme, quel est le problème ?

 
T-G:
Aidez-nous à résoudre un problème.
La question est la suivante : j'ai une hirondelle, qui ouvre les genoux après un nombre donné de points, mais avec une nouvelle majik. Il s'avère que le signal ouvre un ou trois ordres avec majic = 1, puis moins le genou suivant sur un signal2 ouvrir un ou trois ordres avec un majic 2 et ainsi de suite.
Donc chaque genou va sur 1-3 commandes avec sa propre majic.

Maintenant, le point de la question est de savoir comment calculer en boucle les ordres de chaque majic, par exemple, j'ai essayé de le faire de cette manière

Que dites-vous de ça ?

int Count() {
   int i, Сounts[100];
   
   for (i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()>Magic+100)   continue;
         if (OrderType()>1)                  continue;
         Сounts[OrderMagicNumber()]++;
         }
      }//for 
   Comment(10, Сounts[0] +"="+ Сounts[1] +"="+ Сounts[2]);
}

Je ne l'ai pas vérifié, je l'ai dessiné sur mon genou...

 
artmedia70:

Que dites-vous de ça ?

Je ne l'ai pas vérifié, je l'ai juste esquissé sur mes genoux...

Ça n'a pas marché, mais vous m'avez donné la bonne réponse, je suis prêt, merci.
 
Si quelqu'un le sait, j'ai une question : j'ai besoin d'un script en boucle qui "appuierait" sur le bouton "Refresh" une fois toutes les 0,5 secondes dans le graphique actuel et qui réinitialiserait les indicateurs. "J'ai essayé de faire un script en boucle en utilisant WindowRedraw(). J'ai essayé de faire un script en boucle en utilisant WindowRedraw() et Sleep(500), mais les indicateurs ne sont pas réinitialisés.