Erreurs, bugs, questions - page 1381

 
Fry:

...

A propos de la première tâche. Je ne sais pas où trouver des informations sur les valeurs de SYMBOL_VOLUME_STEP.

...

Passez en revue tous les instruments dans la vue d'ensemble du marché et obtenezSYMBOL_VOLUME_STEP pour chacun d'eux. Faites ensuite la même opération sur un autre serveur de négociation. Et ainsi de suite, jusqu'à ce que vous ayez parcouru le monde entier.

Vous saurez alors quelles valeurs deSYMBOL_VOLUME_STEP existent dans le monde.

 
Fry:

0,01 pour ES

0,1 pour SPX

1 pour RTS

Une fois encore, j'ai deux problèmes différents :

La 1ère tâche consiste à égaliser le volume pour n'importe quel instrument dans le monde.

La deuxième tâche consiste à obtenir un devis pour n'importe quel instrument dans le monde à partir du numéro.

A propos de la première tâche. Je ne sais pas où trouver des informations sur les valeurs que SYMBOL_VOLUME_STEP a en principe.

Le fait que j'ai personnellement rencontré 1, 0,1 et 0,01 n'est pas un argument pour dire qu'il n'y en aura toujours qu'un. Qui dit qu'il n'y a pas, disons, 0,25 ou 0,5 ?


A propos du second problème. Je ne sais pas comment obtenir un décalage. Je n'ai rencontré qu'une seule fois un cas aussi délicat avec une offre comportant des incréments de prix de 0,13, 0,38, 0,63, 0,88. Mais où est la garantie qu'il s'agit d'une exception isolée ?

Est-il vraiment nécessaire de devenir un expert de tous les instruments du monde pour obtenir un devis exact dans le terminal d'un numéro ? Pourquoi cela devrait-il être mon problème ?

Quel est le problème ? Le cas le plus simple est le pas de 0,01, 0,1, 1. Par conséquent, on normalise le volume à 2, 1, 0. Si le pas est de 0,13 etc., si le volume est fixe et spécifié dans les paramètres d'entrée - pendant l'initialisation, vous vérifiez si le nombre entier est obtenu en divisant le volume d'entrée par le pas. Si ce n'est pas le cas, vous ajustez le volume à la valeur appropriée la plus proche, par exemple en multipliant la valeur entière résultante par le pas.

 
Karputov Vladimir:

Passez en revue tous les instruments dans l'aperçu du marché et obtenezSYMBOL_VOLUME_STEP pour chacun d'entre eux. Faites ensuite la même opération sur un autre serveur de négociation. Et ainsi de suite, jusqu'à ce que vous ayez fait le tour du monde.

Vous saurez alors quelles valeurs deSYMBOL_VOLUME_STEP existent dans le monde.

Si c'est un sarcasme, je n'en comprends pas la raison.

Si vous suggérez sérieusement que je fais ces conneries régulièrement, il est plus facile de changer de plateforme. Je coderai, par exemple, sous TSLab ou autre chose que je choisirai.

Je ne demande pas quelque chose de super naturel. Juste 2 fonctions de base (à partir d'un nombre quelconque, un volume de pair à pair et un devis).

Il serait tout à fait logique d'attendre un tel service uniquement de l'API, plutôt que de faire de l'"affûtage à la lime" sur place.

 
Fry:

Si c'est un sarcasme, je n'en comprends pas la raison.

Si vous suggérez sérieusement que je fais ces conneries régulièrement, il est plus facile de changer de plateforme. Je coderai sur TSLab, par exemple, ou autre chose que je choisirai.

Je ne demande pas quelque chose de super naturel. Juste 2 fonctions de base (à partir d'un nombre quelconque, un volume de pair à pair et un devis).

Il serait tout à fait logique d'attendre un tel service uniquement de l'API, plutôt que de faire de l'"affûtage à la lime" sur place.

Je ne comprends pas votre "envie" : il existe une fonction standardSYMBOL_VOLUME_STEP- utilisez-la. Vous pouvez utiliser n'importe quel pas pour chaque instrument. Si vous voulez ajouter 100 volumes minimums : volume=SYMBOL_VOLUME_STEP*100. Si vous voulez ajouter 12 volumes minimums : volume=SYMBOL_VOLUME_STEP*12. Quel est le problème ?
 
Karputov Vladimir:
Je ne comprends pas votre "envie" : il existe une fonction standardSYMBOL_VOLUME_STEP- utilisez-la. Vous pouvez utiliser n'importe quel pas pour chaque instrument. Vous voulez ajouter 100 volumes minimums : volume=SYMBOL_VOLUME_STEP*100. Vous voulez ajouter 12 volumes minimums : volume=SYMBOL_VOLUME_STEP*12. Quel est le problème ?

Je vois. Ok. Prenons un exemple concret.

J'ai besoin de définir un ordre qui fermera, disons, 70% de la position, et je veux garder le reste de la position. C'est-à-dire que je crée un take profit partiel.

Une fois que la position est complètement fermée, son volume est facilement connu.

Comment obtenir ~ 70% exactement sur SYMBOL_VOLUME_STEP?

Donnez-moi la formule. =)

 
Fry:

Je vois. Ok. Prenons un exemple concret.

J'ai besoin de définir un ordre qui fermera, disons, 70% de la position, et je veux garder le reste. C'est-à-dire que je crée un take profit partiel.

Une fois que la position est complètement fermée, son volume est facilement connu.

Comment obtenir ~ 70% exactement sur SYMBOL_VOLUME_STEP?

Donnez-moi la formule. =)

Comme ça :

MathFloor((POSITION_VOLUME*0,7)/SYMBOL_VOLUME_STEP)

Et un exemple en chiffres :

step 0.1
POSITION_VOLUME=12,3
12,3*0,7=8,61
8.61/0.1=86.1
MathFloor(86,1)=>86
86 минимальных шагов

step 0.1
POSITION_VOLUME=0,51
0.51*0.7=0.357
0.357/0.1=3.57
MathFloor(3,57)=>3
3 минимальных шага
 
Fry:

Je vois. Bien. Prenons un exemple concret.

J'ai besoin de définir un ordre qui fermera, disons, 70% de la position, et je veux garder le reste de la position. C'est-à-dire que je crée un take profit partiel.

Une fois que la position est complètement fermée, son volume est facilement connu.

Comment obtenir ~ 70% exactement sur SYMBOL_VOLUME_STEP?

Donnez-moi la formule. =)

Bonjour, si vous êtes prêt à analyser ce code. L'archive contient une classe de test pour les opérations de trading standard - Ouverture, Fermeture (le volume de la position à fermer est défini en %), Inversion...

et un ensemble de scripts de test pour démontrer ces fonctions

Dossiers :
MQL5.zip  148 kb
 
Fry:

Je vois. Ok. Prenons un exemple concret.

J'ai besoin de définir un ordre qui fermera, disons, 70% de la position, et je veux garder le reste de la position. C'est-à-dire que je crée un take profit partiel.

Une fois que la position est complètement fermée, son volume est facilement connu.

Comment obtenir ~ 70% exactement sur SYMBOL_VOLUME_STEP?

Donnez-moi la formule. =)

Ma chère, je t'ai dit plus haut comment et quoi faire, tu l'as ignoré en quelque sorte. Personne n'écrira de telles fonctions pour votre bien. Ce n'est pas un besoin - c'est un caprice.

Et oui, 70% même ne peuvent pas toujours être arrangés. C'est pour cela que SYMBOL_VOLUME_STEP a été inventé.

 
Tapochun:

Je vous ai dit plus haut comment et quoi faire, mais pour une raison quelconque, vous l'avez ignoré. Personne n'écrira de telles fonctions pour votre bien. Ce n'est pas un besoin - c'est un caprice.

Et oui, 70% même ne peuvent pas toujours être arrangés. C'est pour cela que SYMBOL_VOLUME_STEP a été inventé.

Je ne l'ai pas ignoré. Je n'ai juste pas eu assez de temps pour m'y mettre. Votre écriture est confuse, et je l'aurai probablement demain. =) J'ai besoin de m'asseoir tranquillement, pour comprendre. Merci pour votre réponse, en tout cas.


Un caprice ? Nécessité ? Les critères sont flous. Pour moi une nécessité, pour vous une mode.

J'ai le sentiment que je ne suis pas le seul à en avoir besoin. Mais ça ne dépend pas de moi.

Le sort et la direction du produit sont entre les mains des développeurs. Je ne suis qu'un utilisateur et peut-être pas pour longtemps =)

 
Ruslan Khasanov:

Salutations, si vous êtes prêt à analyser ce code. L'archive contient une classe de test pour les opérations de trading standard - Ouverture, Fermeture (le volume de la position à fermer est défini en %), Inversion...

et un ensemble de scripts de test pour démontrer ces fonctions

Merci. Je le regarderai le soir.