Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 85
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
1) il compilatore si lamenterà se la seconda dimensione non è impostata, "specificare il tipo di classe, parametri sconosciuti" apparirà immediatamente
2) allora il bot morirà immediatamente all'avvio con "critical error array out of range".
3) impostareint count1=-1; poi passare attraverso il ciclo. Cosa c'è di sbagliato qui?
Beh, rivedete le risposte ogni tanto: 1 e 2 e 3 e ...
Stai facendo la stessa cosa da più di una settimana e peggiora ogni volta, anche se ti è già stata data una risposta e segnalato l'errore. Nel primo codice, il compilatore non si lamentava che la seconda dimensione non fosse presente, ma in quelli successivi inizia a lamentarsi? Il compilatore è andato male? Potete anche aprire qualsiasi codice con array e vedere come vengono creati e fare lo stesso.
Non esiste una cosa del genere. Le MA sono già state così tanto sviscerate, da così tante persone, che si deve solo aspettare un nuovo pensiero da un trader appena ambizioso. Stavo solo scherzando.
La verità è che sono stufo di andare in giro con una bottiglia di MA per tanti anni. Rimangono indietro. Probabilmente dovrebbero essere usati in un altro settore, ma non per catturare i flussi di tendenza.
Ci sono tutti i tipi di mashka.
In generale, ci sono solo pusher ovunque.
Ci sono tutti i tipi di mash-up.
In generale, sono tutti funghi che vengono usati ovunque
Artyom Trishkin:
Che ne dite di questo?
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);
}
fino a quando non lo farò. Non starei scrivendo qui se ne avessi trovato uno simile con altri.
fino a quando non lo farò. Non avrei scritto qui se avessi trovato la stessa cosa con altri. Penso che tu stesso abbia capito che serie di numeri e lista di strutture non sono la stessa cosa, altrimenti otterrai un'altra equazione con un numero infinito di incognite.
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);
}
Sbagliato. Tracciate dal vostro codice la dimensione del vostro array.
Bisogna pensare, almeno un po'. Non c'è bisogno di indovinare. Pensa. Ogni passo del programma. O stai aspettando che qualcuno lo scriva per te? Questo è un servizio freelance - a volte ti ordinano di scrivere funzioni.
Sbagliato. Tracciate dal vostro codice la dimensione del vostro array.
Dovresti pensarci almeno un po'. Non si dovrebbe cercare di indovinare. Pensate. Ogni passo del programma. O stai aspettando che qualcuno lo scriva per te? Questo è un servizio freelance - a volte ti ordinano di scrivere funzioni.
Per come la vedo io
1) aggiungere a zero se si trova l'ordine
2) cambiare la dimensione a 0, riserva 10
3) Scrivere 0 come numero del primo ordine, 1 come secondo, ecc.
Per quanto riguarda i freelance, non metto in dubbio che scriveranno qualsiasi cosa, ma devi comunque riscriverla tu stesso. Non è necessario andarci senza sosta.fino a quando non lo farò. Non avrei scritto qui se avessi trovato lo stesso con altri. Penso che tu stesso capisca che la sequenza numerica e la lista delle strutture non sono la stessa cosa, altrimenti sarebbe un'altra equazione con un numero infinito di incognite.
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);
}
Non ho scritto molto, ho solo registrato un piccolo video di risposta.
Artem certamente aiuta come può, ma non mi dà un pesce, solo una canna da pesca)
trader781, guarda la documentazione ogni tanto, ora è piena ad ogni angolo.il modo in cui lo vedo
1) aggiungere a zero se si trova un ordine
2) cambiare la dimensione a 0, riserva 10
3) Scrivere 0 come numero del primo ordine, 1 come numero del secondo ordine, ecc.
Per quanto riguarda l'agenzia freelance, non metto in dubbio che scriveranno qualsiasi cosa, ma devi comunque riscriverla tu stesso. Non andarci senza sosta.E come volete scrivere qualcosa in un array con dimensione zero?
Metti dei soldi in un portafoglio che non hai...
E come volete scrivere qualcosa in un array con dimensione zero?
Mettere soldi in un portafoglio che non esiste...
rivisto il post 844, così non devo 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 booleano fals, può essere un vuoto, e può essere un punto di partenza.