Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 86
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
riscritto il post 844 per evitare di dover scrivere di nuovo il codice qui
Per quanto riguarda l'array di dimensioni zero - 0 può essere un intero, può essere l'equivalente di un falsificatore booleano, può essere un vuoto, e può essere il punto di partenza.
riscritto il post 844 per evitare di dover scrivere di nuovo il codice qui
Per quanto riguarda l'array di dimensioni zero - 0 può essere un intero, può essere l'equivalente di un falsificatore booleano, può essere un vuoto, e può essere un punto di partenza.
E per favore non fatemi inserire il codice giusto nel post giusto per voi:
//| ProjectName |
//| Copyright 2012, CompanyName |
//| http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+
Ora guardate quale array state riempiendo e per quale campo lo state ordinando. E soprattutto - perché avete bisogno di questo smistamento? Qual è lo scopo di tutto ciò?
E per favore non fatemi incollare il codice giusto nel messaggio giusto per voi:
ordinal'array di ordini, in ordine crescente dal valore zero
per esempio se abbiamo 20 ordini e 18 di essi sono saliti abbastanza accidentalmente di un paio di punti e li ho chiusi immediatamente con le mani
ordinal'array di ordini, in ordine crescente dal valore zero
Per esempio, se abbiamo 20 ordini e 18 di essi sono saliti assolutamente per caso di un paio di punti, e li ho chiusi subito con le mani.
Se avete assolutamente bisogno di ordinare per biglietto, dovrete fare 2 array. Uno è un array di strutture e il secondo è un array bidimensionale che contiene il biglietto d'ordine nella prima dimensione, e nella seconda l'indice del contatore, l'indice sotto il quale le informazioni dell'ordine sono memorizzate nell'array di strutture. E riempire questi array allo stesso tempo in un ciclo.
Stai cercando di risolvere questa questione da così tanto tempo che non ricordo nemmeno lo scopo che stavi cercando di raggiungere. E probabilmente tutti gli altri.
Se ricordo bene, è necessario selezionare un certo numero dalla lista degli ordini. Allora qual è il problema? Basta fare un semplice array unidimensionale, ordinare i biglietti, e poi orderSelect(array[required], SELECT_BY_TICKET) ed ecco fatto... poi fate quello che volete con questo ordine.
Se avete assolutamente bisogno di ordinare per biglietto, dovete fare due array. Uno è un array di strutture e il secondo è un array bidimensionale che contiene il biglietto d'ordine nella prima dimensione e l'indice del contatore nella seconda, l'indice sotto il quale le informazioni dell'ordine sono memorizzate nell'array di strutture. E riempire questi array allo stesso tempo in un ciclo.
Stai cercando di risolvere questa questione da così tanto tempo che non ricordo nemmeno lo scopo che stavi cercando di raggiungere. E probabilmente tutti gli altri.
Se ricordo bene, è necessario selezionare un certo numero dalla lista degli ordini. Allora qual è il problema? Basta fare un semplice array unidimensionale, ordinarlo, e poi orderSelect(array[required], SELECT_BY_TICKET) e questo è tutto... Poi puoi fare quello che vuoi con questo ordine.
Anche lì non ricordo cosa dovrei fare. Ma la cosa buona è che lo fa.
Gli chiedo specificamente di scrivere una cosa all'inizio, e poi gli chiedo di guardare attentamente ciò che ha scritto, in modo che capisca da solo che non funzionerà così - ha bisogno di un altro array locale proprio nella funzione, che dovremo ordinare e poi riempire l'array globale da quello ordinato.
Se avete assolutamente bisogno di ordinare per biglietto, dovete fare due array. Uno è un array di strutture e il secondo è un array bidimensionale, che contiene il biglietto d'ordine nella prima dimensione e l'indice del contatore nella seconda, l'indice sotto il quale le informazioni dell'ordine sono memorizzate nell'array di strutture. E riempire questi array allo stesso tempo in un ciclo.
Stai cercando di risolvere questa questione da così tanto tempo, che non ricordo nemmeno lo scopo che stavi cercando di raggiungere. E probabilmente tutti gli altri.
Se ricordo bene, è necessario selezionare un certo numero dalla lista degli ordini. Allora qual è il problema? Basta fare un semplice array unidimensionale, ordinare i biglietti, e poi orderSelect(array[required], SELECT_BY_TICKET) ed ecco fatto... poi fate quello che volete con questo ordine.
No, capisco che ci sono molti modi per farlo in modo diverso e fare a meno degli array. Perché 2 se ce n'è uno di strutture?
Perché un semplice array è ordinato in base ai valori nella prima dimensione dell'array, e come sia ordinato un array di strutture non ne ho idea.
Domanda interessante però... Ora proverò ad ordinare un array di strutture.
Perché un semplice array è ordinato in base ai valori nella prima dimensione dell'array, ma come viene ordinato un array di strutture non ne ho idea.
È una domanda interessante però... Ora proverò ad ordinare un array di strutture.
Perché un semplice array è ordinato per valori nella prima dimensione dell'array, ma non ho idea di come sia ordinato un array di strutture.
Anche se la domanda è interessante... Proverò a sistemare una serie di strutture.
Non ho idea di cosa sia o di cosa si tratti
Ma ora che l'argomento è stato sollevato, è stupido buttarlo via. Ci sono anche array di classi.
Non ho idea del perché sia necessario sotto forma di struttura. Il programma mq è scritto in un solo file, l'array è gestito in un unico scorrimento e si adatta a una sola schermata. Che senso ha una struttura in questo caso, per interesse sportivo?
Scriviamo tutto per amore dello sport. Prima capiamo cosa funziona e come funziona, e poi cominciamo a pensare a come scriverlo in modo più efficace.
Per quanto riguarda l'ordinamento dell'array di strutture: come mi aspettavo, l'esperimento è fallito. Già in fase di compilazione il compilatore ha detto"l'espressione non ha effetto"