Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 85
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
1) le compilateur se plaindra si la deuxième dimension n'est pas définie, le message "spécifier le type de classe, paramètres inconnus" apparaîtra immédiatement.
2) alors le bot mourra immédiatement au démarrage avec "critical error array out of range".
3) définirint count1=-1; puis parcourir la boucle. Qu'est-ce qui ne va pas ici ?
Regardez les réponses de temps en temps : 1 et 2 et 3 et ...
Vous faites la même chose depuis plus d'une semaine et cela empire à chaque fois, bien qu'on vous ait déjà donné une réponse et signalé l'erreur. Dans le premier code, le compilateur ne s'est pas plaint que la deuxième dimension n'est pas présente, mais dans les suivants, il commence à se plaindre ? Le compilateur est défectueux ? Vous pouvez également ouvrir n'importe quel code avec des tableaux et voir comment ils sont créés et faire la même chose.
Il n'y a rien de tel. Les MA ont déjà été tellement étudiées, par tant de personnes, qu'il ne reste plus qu'à attendre une nouvelle pensée d'un trader fraîchement ambitieux. Je plaisante.
La vérité, c'est que j'en ai assez de me promener avec une bouteille de MA pendant tant d'années. Ils sont à la traîne. Ils devraient probablement être utilisés dans un autre domaine, mais pas pour capter les flux de tendance.
Il y a toutes sortes de mashkas.
En gros, il n'y a que des pousseurs partout.
Il y a toutes sortes de mash-ups.
En gros, ce sont tous les champignons qui sont utilisés partout.
Artyom Trishkin:
Que pensez-vous de ça ?
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int Magic=444;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1);
orders[count1-1].Ticket=OrderTicket();
orders[count1-1].lot=OrderLots();
orders[count1-1].orderopenprice=OrderOpenPrice();
orders[count1-1].ordertype=OrderType();
orders[count1-1].profit=OrderProfit();
orders[count1-1].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
jusqu'à ce que je le fasse. Je n'écrirais pas ici si je n'en avais pas trouvé un semblable chez d'autres.
jusqu'à ce que je le fasse. Je n'aurais pas écrit ici si j'avais constaté la même chose chez les autres. Je pense que vous comprenez vous-même que les séries de nombres et les listes de structures ne sont pas les mêmes, sinon vous obtiendrez une autre équation avec un nombre infini d'inconnues.
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[];
int i;
int Magic=444;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
CalcOrders();
}
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1,10);
orders[count1].Ticket=OrderTicket();
orders[count1].lot=OrderLots();
orders[count1].orderopenprice=OrderOpenPrice();
orders[count1].ordertype=OrderType();
orders[count1].profit=OrderProfit();
orders[count1].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
Faux. Tracez à partir de votre code la taille de votre tableau.
Vous devez réfléchir, au moins un peu. Vous n'avez pas à deviner. Réfléchissez. Chaque étape du programme. Ou attendez-vous que quelqu'un l'écrive pour vous ? Il s'agit d'un service indépendant - ils vous demandent parfois d'écrire des fonctions.
Faux. Tracez à partir de votre code la taille de votre tableau.
Tu devrais y réfléchir au moins un peu. Vous ne devez pas essayer de deviner. Réfléchissez. Chaque étape du programme. Ou attendez-vous que quelqu'un l'écrive pour vous ? Il s'agit d'un service indépendant - ils vous demandent parfois d'écrire des fonctions.
La façon dont je vois les choses
1) ajouter à zéro si l'ordre est trouvé
2) changer la taille à 0, réserve 10
3) Écrire 0 comme le premier numéro d'ordre, 1 comme le second, etc.
Quant au freelancing, je ne conteste pas qu'ils écrivent n'importe quoi, mais il faut quand même réécrire soi-même. Tu n'as pas besoin d'y aller sans arrêt.jusqu'à ce que je le fasse. Je n'aurais pas écrit ici si j'avais constaté la même chose chez les autres. Je pense que vous comprenez vous-même que la séquence numérique et la liste des structures ne sont pas les mêmes, sinon ce sera une autre équation avec un nombre infini d'inconnues.
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
ArrayResize(orders,count1,10);
orders[count1].Ticket=OrderTicket();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
Je n'ai pas trop écrit, j'ai juste enregistré une petite réponse vidéo.
Artem m'aide certainement autant qu'il le peut, mais il ne me donne pas un poisson, juste une canne à pêche).
trader781, regardez parfois la documentation, elle est maintenant pleine à craquer.la façon dont je vois les choses
1) ajouter à zéro si un ordre est trouvé
2) changer la taille à 0, réserve 10
3) Inscrivez 0 comme premier numéro d'ordre, 1 comme deuxième numéro d'ordre, etc.
Quant à l'agence de freelance, je ne conteste pas qu'elle puisse écrire n'importe quoi, mais vous devez quand même le réécrire vous-même. N'y allez pas sans arrêt.Et comment voulez-vous écrire quelque chose dans un tableau dont la taille est nulle ?
Mettre de l'argent dans un portefeuille que vous n'avez pas...
Et comment voulez-vous écrire quelque chose dans un tableau dont la taille est nulle ?
Mettre de l'argent dans un porte-monnaie qui n'existe pas...
révisé le post 844, pour que je n'aie pas à écrire du code ici à nouveau.
En ce qui concerne le tableau de taille zéro - 0 peut être un entier, il peut être l'équivalent d'un booléen fals, il peut être un vide, et il peut être un point de départ.