Erreurs, bugs, questions - page 774

 
Karlson:

Je ne savais pas dans quel fil écrire ))))

Dépôt initial de 10000. C'est avant la mise à jour d'hier.

Comment ça s'est passé ? Pouvez-vous donner le code et la description des conditions de test dans le servicedesk ?
 
Urain:

L'événement OnTradeTransaction déclenche-t-il l'événement Trade, ou dispose-t-il de son propre événement ?

Si les deux fonctions sont déclenchées par le même événement, quel est l'ordre ? Lequel est déclenché en premier par OnTrade() ou OnTradeTransaction() ?

Tu ne peux pas continuer comme ça.

Mettez une impression et voyez - cela prendra une minute.

 

Tout est là. En plus de mon expert...#419548

C'est comme ça que j'ai commencé à tester l'argent...

Il y a une consommation incompréhensible de mémoire de trois barils...

 
Renat:

Ils se complètent, OnTradeTransaction couvrant entièrement la fonctionnalité OnTrade.

OnTradeTransaction vous donne accès au flux brut de la transaction et vous permet de suivre en détail le processus d'exécution de la transaction.

Les fonctions fonctionnent de manière indépendante et le flux de transactions sur OnTradeTransaction est beaucoup plus important et plus détaillé. OnTradeTransaction possède sa propre file d'attente à partir de laquelle les commandes sont émises.

ps : définissez simplement un sous-titre de ces fonctions et voyez par vous-même

En d'autres termes, OnTrade est maintenant une version réduite de OnTradeTransaction ?

ou est-il possible d'obtenir quelque chose dans OnTrade qui ne peut pas être dans OnTradeTransaction ?

 
Urain:

OnTrade est donc maintenant une version simplifiée de OnTradeTransaction ?

Ou est-il possible d'obtenir quelque chose de OnTrade qui ne peut pas provenir de OnTradeTransaction ?

OnTrade est identique à ce qu'il était - juste une notification "des changements sont intervenus dans la base de données des opérations commerciales " sans aucun détail. Le trader doit se rendre lui-même dans la base de données et voir ce qui a réellement changé.

OnTradeTransaction fournit des transactions individuelles absolument précises et détaillées, étape par étape. Ici, chaque transaction est donnée sur un plateau, pas besoin de chercher les changements dans la base de données.

Ils ont fait exactement ce qu'ils ont demandé - ils ont donné un contrôle complet et détaillé de toutes les transactions liées aux opérations commerciales. De plus, il est facile de détecter tout changement effectué côté serveur : déclenchement de stops, d'ordres, de rollovers, etc.

 
Renat:

OnTrade est identique à ce qu'il était - juste une notification disant que "certains changements ont été effectués dans la base des opérations de trading " sans aucun détail. Le trader doit se rendre lui-même dans la base de données et voir ce qui a réellement changé.

OnTradeTransaction donne des transactions individuelles absolument précises et détaillées, étape par étape. Chaque transaction est présentée sur un plateau, il n'est pas nécessaire de rechercher les changements dans la base de données.

Ils ont fait exactement ce qu'ils ont demandé - ils ont assuré un suivi complet et détaillé de toutes les transactions liées aux opérations commerciales. Et tous les changements effectués côté serveur sont faciles à repérer : déclenchement des arrêts, des ordres, des reconductions, etc.

Merci, c'est très astucieux. Maintenant que je le teste, il est très pratique et fonctionnel.
 

Pouvez-vous me dire si la fonction CopyBuffer peut être utilisée dans une fonction d'initialisation ?

input int      n_analyzed_bars=50;

input int      shift_offset=0; 

input string   symb1="GBPUSD";

input ENUM_MA_METHOD   ma_method=MODE_SMA;

input ENUM_APPLIED_PRICE   applied_price=PRICE_CLOSE;  

//--- indicator buffers 

double                   MainMaBuffer[];

double                   MaBuffer1[]; 

//--- MA handles

int                      MainMaHandle;

int                      MaHandle1; 

int OnInit()

  { 

SetIndexBuffer(0,instsymBuffer,INDICATOR_DATA);

SetIndexBuffer(13,MainMaBuffer,INDICATOR_CALCULATIONS);

ArraySetAsSeries(MainMaBuffer,true);

ArraySetAsSeries(MaBuffer1,true);

 

MaHandle1 = iMA(symb1,0,1,0,ma_method,applied_price);

MainMaHandle = iMA(_Symbol,0,1,0,ma_method,applied_price); 

if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)<=0) 

    {

      Print("Getting MA is failed! Error",GetLastError());      

      return(0);

    }

erreur 4806 et 4007

ERR_INDICATEUR_DATA_NOT_FOUND

4806

Données demandées non trouvées

ERR_ARRAY_RESIZE_ERROR

4007

Pas assez de mémoire pour redistribuer le tableau ou une tentative de redimensionner un tableau statique

 
Neofit:

Pouvez-vous me dire si la fonction CopyBuffer peut être utilisée dans une fonction d'initialisation ?

erreur 4806

ERR_INDICATEUR_DATA_NOT_FOUND

4806

Les données demandées n'ont pas été trouvées

Si vous créez un indicateur dans l'inite, il est préférable de déplacer la lecture de ses données vers OnTick ou OnCalculate, car vous avez besoin de temps après la création de l'indicateur pour qu'il soit calculé.

C'est-à-dire que vous avez créé l'indicateur dans l'inite et à gauche. Au point de fonctionnement OnTick/OnCalculate, vous vérifiez la disponibilité des données par le CopyBuffer et vous laissez également le calcul jusqu'à ce que les données apparaissent.

C'est ainsi que vous initiez et travaillez avec des indicateurs complexes esclaves/dépendants.

 
Renat:

Si vous créez un indicateur dans l'inite, il est préférable de déplacer la lecture de ses données vers OnTick ou OnCalculate, car vous avez besoin de temps après la création de l'indicateur pour qu'il soit calculé.

En d'autres termes, vous avez créé l'indicateur dans l'inite et à gauche. Au point de fonctionnement OnTick/OnCalculate, vous vérifiez la disponibilité des données via le CopyBuffer et vous laissez également le calcul jusqu'à ce que les données apparaissent.

De cette manière, vous devez initialiser et travailler avec des indicateurs esclaves/dépendants complexes.

Merci pour vos commentaires.

J'écris un indicateur... malheureusement, le concept de l'indicateur suppose - qu'au moment où nous arrivons à OnCalculate la paire optimale sera sélectionnée, je soupçonne que cela ne semble pas clair.

En général, dans la fonction OnCalculate, nous devons déjà utiliser les résultats des calculs et des analyses qui ont été effectués dans On Init.

Nous ne pouvons pas transférer ces calculs à OnCalculate car nous n'avons pas le temps d'effectuer tous les calculs entre deux ticks consécutifs...

 
antt:
Oui. Malheureusement, il y a une erreur dans le rendu de cet objet dans le build. Il sera corrigé dans la prochaine version. Nous nous en excusons.

Je vois, merci. Qu'en est-il...

Silencieux:

...

Les autres objets(éventail de Gann, arcs) seront-ils terminés ?

Au sujet des "égarements" lors du changement de fenêtre ?