juste pour ajouter, il n'est PAS GARANTI que le terminal a et donnera un historique suffisant.
dans l'exemple ci-dessus, il n'y a pas de référence à l'histoire
ainsi il est garanti que le résultat de OrderSelect() est vrai.
UPD : OrderSelect en 4 fonctionne très bien, je l'ai testé une fois - pour les ordres au marché, le moment d'accès aux propriétés de l'ordre..... c'est vraiment des millions de fois par seconde, je ne veux pas chercher, je crois que je me disputais avec le modérateur Artem, mais comme on dit "toutes les pointes de pieds sont différentes", j'aime bien - gardez-le.
@Igor Makanu, merci beaucoup pour vos réponses concernant les ordres de tri dans le terminal. Je vais probablement les enregistrer comme un tableau de structures et les trier moi-même. Mes doutes venaient principalement du fait que je craignais que de telles actions effectuées à chaque tic n'aient un impact négatif notable sur les performances.
Janis Ozols: @Igor Makanu, merci beaucoup pour vos réponses concernant les ordres de tri dans le terminal. Je vais probablement les enregistrer comme un tableau de structures et les trier moi-même. Les doutes venaient principalement du fait que je craignais que de telles actions effectuées à chaque tic n'aient un impact négatif notable sur les performances.
Alors pourquoi trier à chaque tique ? Cela ne suffit que lorsque le nombre d'entrées change ou que la liste change complètement...
Bonjour Veuillez m'aider à comprendre pourquoi l'indicateur téléchargé depuis le navigateur n'est pas traîné sur le graphique. Il est dans le catalogue.
dans l'exemple ci-dessus, il n'y a pas de référence à l'histoire
ainsi il est garanti que le résultat de OrderSelect() est vrai.
UPD : OrderSelect en 4 fonctionne très bien, je l'ai testé une fois - pour les ordres au marché, le moment d'accès aux propriétés de l'ordre..... c'est vraiment des millions de fois par seconde, je ne veux pas chercher, je crois que je me disputais avec le modérateur Artem, mais comme on dit "toutes les pointes de pieds sont différentes", j'aime bien - gardez-le.
Le modérateur Artem ne discute pas. Le modérateur Artem débat :)
Pourquoi isCrossing() ne renvoie pas 2? ?? La fonction isCrossing() elle-même a une deuxième entrée if, mais il n'y a pas d'entrée if dans OnTick() lorsque isCrossing() == 2. C'est quoi cette absurdité...
juste pour ajouter, il n'est PAS GARANTI que le terminal a et donnera un historique suffisant.
dans l'exemple ci-dessus, il n'y a pas de référence à l'histoire
ainsi il est garanti que le résultat de OrderSelect() est vrai.
UPD : OrderSelect en 4 fonctionne très bien, je l'ai testé une fois - pour les ordres au marché, le moment d'accès aux propriétés de l'ordre..... c'est vraiment des millions de fois par seconde, je ne veux pas chercher, je crois que je me disputais avec le modérateur Artem, mais comme on dit "toutes les pointes de pieds sont différentes", j'aime bien - gardez-le.
Bonjour, il y a un besoin de données sur le drawdown de chaque transaction.
Quelqu'un peut-il rencontrer un script pour collecter de telles statistiques et les sortir sous forme de rapport ?
Merci.
Bonjour, il y a un besoin de données sur le drawdown de chaque transaction.
Quelqu'un peut-il rencontrer un script pour collecter de telles statistiques et les sortir sous forme de rapport ?
merci
for(int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
il est "écrit à la main", non testé, plein de bogues :-) il suffit de l'adapter à vos besoins et de l'utiliser.
for(int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
écrit "à la main", non vérifié, plein d'erreurs :-) à adapter à vos besoins et à votre utilisation
Merci, je vais essayer de trouver une solution !
@Igor Makanu, merci beaucoup pour vos réponses concernant les ordres de tri dans le terminal. Je vais probablement les enregistrer comme un tableau de structures et les trier moi-même. Les doutes venaient principalement du fait que je craignais que de telles actions effectuées à chaque tic n'aient un impact négatif notable sur les performances.
Alors pourquoi trier à chaque tique ? Cela ne suffit que lorsque le nombre d'entrées change ou que la liste change complètement...
dans l'exemple ci-dessus, il n'y a pas de référence à l'histoire
ainsi il est garanti que le résultat de OrderSelect() est vrai.
UPD : OrderSelect en 4 fonctionne très bien, je l'ai testé une fois - pour les ordres au marché, le moment d'accès aux propriétés de l'ordre..... c'est vraiment des millions de fois par seconde, je ne veux pas chercher, je crois que je me disputais avec le modérateur Artem, mais comme on dit "toutes les pointes de pieds sont différentes", j'aime bien - gardez-le.