"Erreur de PositionSelect() flottante - page 3

 
Karputov Vladimir:

Je l'ai dit plus haut - ne vous laissez pas emporter par les ordres : regardez les transactions. Voici un code court qui montre QUAND le volume de la position change et de quel type de transaction il s'agit :

Et voici les empreintes, en partie fermées :

Vous pouvez clairement voir que dès qu'un événement avec le type de transactionTRADE_TRANSACTION_DEAL_ADD est passé, ça y est, les données de position dans le terminal sont mises à jour.

Je suis vraiment choqué !

Vous le faites exprès ou vous ne lisez pas ce que j'écris ?

 
prostotrader:

Je suis juste choqué !

Vous le faites exprès ou vous ne lisez pas du tout ce que j'écris ?

Il me semble que vous ne voulez pas comprendre qu'un ordre n'est pas tout. Et l'enregistrement d'une transaction dans l'historique est un signal pour le programmeur que les données sur la position ont déjà été modifiées.
 
Karputov Vladimir:
Il me semble que vous ne voulez pas comprendre qu'un ordre n'est pas tout. Mais l'enregistrement d'une transaction dans l'historique est un signal pour le programmeur que les données de position ont déjà été modifiées.
Tout est clair, merci.
 
prostotrader:
Tout est clair, merci.

Un mandat est une puce, qui peut ou non s'inscrire. Au-dessus de l'ordre, il y a une transaction. Au-dessus d'une transaction, il y a une position. Les modifications des données de position ont lieu après l'enregistrement de l'opération dans l'historique.

Ce que vous attrapez parfois - eh bien, juste le mérite des ordinateurs rapides et de l'Internet. Si vous aimez - par hasard.

Ajouté : bien qu'il sera intéressant de connaître la réponse de ServiceDesk à votre demande.

 
prostotrader:

1. >Sans connaître l'algorithme exact (ce que vous attendez du programme), il est difficile d'évaluer s'il est implémenté correctement...

Je pensais qu'il n'était pas difficile de comprendre ce que fait le programme, mais si ce n'est pas clair, alors...

Un Expert Advisor ouvre une position sur le marché FORTS avec un volume de 2 contrats ; si la position est ouverte, elle est partiellement fermée avec un volume de 1 contrat,

alors la position sera complètement fermée. Répétez cette procédure jusqu'à ce que le compteur tr_cnt<50

2. Vous pouvez "exécuter" PositionSelect() un million de fois - cela ne changera rien, car

l'événementTRADE_TRANSACTION_DEAL_ADD ne sera pas reçu avant que vous ne soyez dans la boucle, et donc, le terminal ne mettra pas à jour

informations sur le poste.

Eh bien, peut-être que l'objectif du programme est correct, mais que les moyens pour l'atteindre sont nuls, pardonnez mon français...

Pourquoi devez-vous vérifier les commandes historiques? Il faut regarder les métiers. Vladimir a tout à fait raison ici !

Seul un fou pourrait exécuter un tel programme sur le réel...

 
Dennis Kirichenko:

Alors oui, l'objectif du programme est peut-être correct, mais les moyens pour l'atteindre sont nuls, excusez du peu...

Pourquoi diable les commandes historiques sont-elles vérifiées ? Il faut regarder les métiers. Vladimir a tout à fait raison ici !

Seul un fou ferait fonctionner un tel programme sur le marché réel...

Je comprends "Professeur", mais il ne s'agit pas de ma folie, il s'agit de l'erreur dans le terme.

Au fait, en voici un autre que j'ai trouvé (et qui se trouve après le LOCK !!!!!!!!!!):

2016.08.03 17:25:57.693 Test_Pos_selct (GAZR-9.16,M1)   OpenPosition: Order sent successfully for open position volume = 2.0
2016.08.03 17:25:57.703 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order resived #50278099
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Deal, based on order #50278099  done.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 1
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order #50278099  add to history.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Order #50278099  not found.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 2
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Deal, based on order #50278099  done.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position exists.
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:57.733 Test_Pos_selct (GAZR-9.16,M1)   OnTradeTransaction: Position volume: 2
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position exists
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position type: POSITION_TYPE_BUY
2016.08.03 17:25:58.613 Test_Pos_selct (GAZR-9.16,M1)   OnBookEvent: Position volume: 2
 
prostotrader:

Je vois "Professeur", mais il ne s'agit pas de ma folie, il s'agit de la présence d'une erreur dans le termeal.

Au fait, en voici une autre qui est apparue (et qui se trouve après le MOT !!!!!!!!!!):

Veuillez apporter votre code au mien - vous n'avez pas le type de transaction commerciale imprimé. Supprimez la vérification des commandes - vous n'en avez pas besoin ici.
 

Une fois encore, pour les "candidats", les "médecins", les "professeurs" et les "universitaires".

Tout événement provenant de OnTradeTransaction() peut être perdu.

C'est pourquoi je pense que c'est une erreur qu'après avoir reçu l'événement significatifTRADE_TRANSACTION_HISTORY_ADD

les données dans le terminal ne sont pas mises à jour !

 
Karputov Vladimir:
Veuillez apporter votre code au mien - votre type de transaction commerciale n'est pas imprimé. Supprimez la vérification des commandes - vous n'en avez pas besoin ici.
Merci pour votre persévérance.
 
prostotrader:

Je vois "Professeur", mais il ne s'agit pas de ma folie, il s'agit de la présence d'une erreur dans le termeal.

Au fait, en voici une autre qui est apparue (et qui se trouve après le MOT !!!!!!!!!!):

J'ai fait une erreur, je n'ai pas remarqué qu'il y avait deux offres.
Raison: