[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 254

 
Bonjour, c'est peut-être une question stupide, mais il y a peut-être une solution ? Je comprends que les requotes sont gérées par un serveur dans une société de courtage, mais peut-être existe-t-il un moyen programmatique de les traiter ? Est-il possible de réduire leur temps ? Mon courtier met parfois 7 à 10 secondes ! C'est un cauchemar.
 
Shniperson:
Bonjour, c'est probablement une question stupide, mais il y a peut-être une solution ? Je comprends que les requêtes sont effectuées par le serveur de courtage, mais il existe peut-être un moyen programmatique de traiter les requêtes ? Est-il possible de réduire leur temps ? Mon courtier met parfois 7 à 10 secondes ! C'est un cauchemar.


Non. La seule chose dont vous disposez est la gestion logicielle des requêtes. Exemple - Fonction OpenPosition() pour online par Kim I.V. - dans la dernière ligne du cycle de traitement des requêtes

 if (err!=135) Sleep(1000*7.7);

En général, les erreurs #135 et #138 - impliquent le même traitement, si je comprends bien...:-))

ERR_PRICE_CHANGED 135 Prix modifié
ERR_OFF_QUOTES 136 Pas de prix
ERR_BROKER_BUSY 137 Courtier occupé
ERR_REQUOTE 138 Nouveaux prix

Dans ma chouette, cette ligne est notée comme suit

if ((error != ERR_PRICE_CHANGED) && (error != ERR_REQUOTE)) Sleep(1000*7.7);
      


	          
 
Roman.:


Non. Vous n'avez que le programme pour traiter les requêtes. Exemple - Fonction OpenPosition() par Kim dans la dernière ligne de la boucle pour le traitement des requêtes

En général, les erreurs #135 et #138 - impliquent le même traitement, si je comprends bien...:-))

ERR_PRICE_CHANGED 135 Prix modifié
ERR_OFF_QUOTES 136 Pas de prix
ERR_BROKER_BUSY 137 Courtier occupé
ERR_REQUOTE 138 Nouveaux prix

Dans ma chouette, cette ligne est remplie comme suit


Je ne comprends pas comment le délai du logiciel vous permet de "combattre" les requêtes ?

Cela signifie que les DT retardent l'ouverture de l'ordre, et qu'il y a également un retard logiciel.

La seule façon de la "combattre" :

a) utiliser un grand glissement

b) utiliser les ordres en attente

Ma société de courtage a récemment commencé à retarder les ordres jusqu'à une minute, de sorte que je ne peux pas négocier par des ordres au marché.

 
nadya:
Pourquoi ne pas calculer vous-même le montant en utilisant la fonction OrderCommission() ?

int n=OrdersTotal();
double Comission=0;
while (n>0)
 {
 OrderSelect(n-1,SELECT_BY_POS,MODE_TRADES);
 Comission=Comission+OrderCommission();
 n--;
 }
Je ne suis pas sûr que ce code le calcule correctement.
 
abolk:


...

a) utiliser un grand glissement

b) utiliser les ordres en attente

...avec des ordres au marché n'est tout simplement pas possible.

a) - c'est la valeur par défaut.

b) - si les ordres au marché sont ouverts, pourquoi ne pas les utiliser aussi...

 
Mes amis, répondez à mon message précédent, s'il vous plaît
 

Trouver la valeur moyenne

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i)) ;

Exécutez-la dans le testeur pour n chandeliers et produisez-la dans Alert.

Je n'arrive pas à le faire fonctionner.

Aide

 
palesandr:

Trouver la valeur moyenne

MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i)) ;

Exécutez-la dans le testeur pour n chandeliers et produisez-la dans Alert.

Je n'arrive pas à le faire fonctionner.

Aide

Montrez-nous comment cela ne fonctionne pas et nous le réparerons.
 


extern double n = 360 ;


int start()
{

double v, vol ;

for(int i=1;i<=n;i=i+1)
{
v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i)) ;
vol=(vol+v) ;
}
Alert ("vol=", vol ) ;
return ;
}

 
palesandr:


extern double n = 360 ;


int start()
{

double v, vol ;

for(int i=1;i<=n;i=i+1)
{
v=MathAbs(iClose(NULL,0,i)-iOpen(NULL,0,i)) ;
vol=(vol+v) ;
}
Alerte ("vol=", vol ) ;
retour ;
}


vol = vol / n;
Alert ("vol=", vol );