Ciao, ho preso la funzione per determinare il prezzo dell'ultimo ordine Sell aperto
PriceS(string sy="0", int op=OP_SELL, int mn=-1) { //Цена последнего открытого Селл ордераdatetime t;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Ma quando lo incollo nel mio EA, ottengo un errore di compilazione nella condizione della funzione 'sy' - token inatteso
=' - token inaspettato 252 18
l-valore richiesto 1 1
conversione implicita da 'stringa' a 'numero' 252 19
'=' - l-valore richiesto 252 18
'=' - espressione di tipo 'void' è illegale 252 18
'op' - token inaspettato 252 28
'=' - token inaspettato 252 30
l-valore richiesto 1 1
'OP_SELL' - utilizzo operazione illegale 252 31
possibile perdita di dati dovuta alla conversione del tipo 252 30
'=' - l-valore richiesto 252 30
'=' - espressione di tipo 'void' è illegale 252 30
'mn' - token inaspettato 252 44
'=' - token inaspettato 252 46
l-valore richiesto 1 1
'1' - operazione illegale uso 252 48
Sembra che tutto dovrebbe essere corretto!? Per favore consigliatemi, l'ho copiato e non ho cambiato nulla.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает цену открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t=0;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
Corretto, l'esempio diceva anche. Se ho capito bene, è possibile selezionare il tipo di ordine, cosa che ho fatto.
Op- Operazione commerciale, tipo di posizione. Valori validi:OP_BUY,OP_SELL o-1. Il valore predefinito di-1 significa qualsiasi posizione.
Poi ho reso la funzione globale mettendola prima di start. Ma se restituisco il tipo doppio subito prima del nome della funzione, si verificherà un errore, per favore ditemi perché!
'PriceS' - la funzione può essere dichiarata solo nell'ambito globale 252 10
Ho capito che la funzione deve essere globale!
Tradotto l'errore nel traduttore dice
La funzione può essere definita solo nell'ambito globale. Se ho capito bene il significato di queste parole, deve essere definita globalmente e quindi non farla precedere da double. Non è chiaro perché genera un errore su sy anche se lo copio semplicemente dal modello.
Esatto, era anche scritto nell'esempio. Se ho capito bene è possibile selezionare il tipo di ordine, cosa che ho fatto.
op- operazione commerciale, tipo di posizione. Valori validi:OP_BUY,OP_SELL o-1. Il valore predefinito di-1 significa qualsiasi posizione.
Poi ho reso la funzione globale mettendola prima di start. Ma se restituisco il tipo doppio subito prima del nome della funzione, si verifica un errore. Per favore, ditemi perché!
'PriceS' - la funzione può essere dichiarata solo nell'ambito globale 252 10
Ho capito che la funzione deve essere globale!
Tradotto l'errore nel traduttore dice
Posizionare la funzione al di fuori della funzione di avvio
PriceOpenLastPos(); //текущий символ любая последняя поз.
PriceOpenLastPos(Symbol(),OP_SELL);//текущий символ OP_SELL без магика
PriceOpenLastPos(Symbol(),OP_BUY);//текущий символ OP_BUY без магика
3 parametri magik, separati da virgola, metti il tuo o 0
È una strana sensazione quella che si prova. Ti ho solo mostrato come mantenerlo semplice - senza variabili inutili.
Quindi sono stanco ed è il momento di andare a riposare un po' - dormire, sì.
Qual è la funzione della finestra dell'indicatore nell'Expert Advisor?
Buon pomeriggio, quali funzioni nell'Expert Advisor si possono fare nella finestra dell'indicatore?
Chiama un indicatore vuoto dall'Expert Advisor.
Chiama un indicatore vuoto dall'esperto.
Grazie!
Trova il codice che ti serve qui
Ciao, ho preso la funzione per determinare il prezzo dell'ultimo ordine Sell aperto
Ma quando lo incollo nel mio EA, ottengo un errore di compilazione nella condizione della funzione 'sy' - token inatteso
=' - token inaspettato 252 18
l-valore richiesto 1 1
conversione implicita da 'stringa' a 'numero' 252 19
'=' - l-valore richiesto 252 18
'=' - espressione di tipo 'void' è illegale 252 18
'op' - token inaspettato 252 28
'=' - token inaspettato 252 30
l-valore richiesto 1 1
'OP_SELL' - utilizzo operazione illegale 252 31
possibile perdita di dati dovuta alla conversione del tipo 252 30
'=' - l-valore richiesto 252 30
'=' - espressione di tipo 'void' è illegale 252 30
'mn' - token inaspettato 252 44
'=' - token inaspettato 252 46
l-valore richiesto 1 1
'1' - operazione illegale uso 252 48
Sembra che tutto dovrebbe essere corretto!? Per favore consigliatemi, l'ho copiato e non ho cambiato nulla.
Ciao, ho preso la funzione per determinare il prezzo dell'ultimo ordine Sell aperto
Ma quando lo incollo in un EA, ottengo un errore di compilazione nella condizione della funzione 'sy' - token inatteso
=' - token inaspettato 252 18
l-valore richiesto 1 1
conversione implicita da 'stringa' a 'numero' 252 19
'=' - l-valore richiesto 252 18
'=' - espressione di tipo 'void' è illegale 252 18
'op' - token inaspettato 252 28
'=' - token inaspettato 252 30
l-valore richiesto 1 1
'OP_SELL' - utilizzo operazione illegale 252 31
possibile perdita di dati dovuta alla conversione del tipo 252 30
'=' - l-valore richiesto 252 30
'=' - espressione di tipo 'void' è illegale 252 30
'mn' - token inaspettato 252 44
'=' - token inaspettato 252 46
l-valore richiesto 1 1
'1' - operazione illegale uso 252 48
Sembra che tutto dovrebbe essere corretto!? Per favore consigliatemi, l'ho copiato e non ho cambiato nulla.
Ho bisogno di restituire il tipo di funzione
Sembra che tutto dovrebbe essere corretto!? Per favore consigliatemi, l'ho copiato enon ho cambiato nulla.
E l'intestazione della funzione, e non ha copiato il tipo di funzione
La funzione originariamente si presenta così:
E l'intestazione della funzione, e non ha copiato il tipo di funzione
La funzione originariamente si presenta così:
Un'intestazione di funzione, e non hanno copiato il tipo di funzione
La funzione originariamente si presenta così:
Corretto, l'esempio diceva anche. Se ho capito bene, è possibile selezionare il tipo di ordine, cosa che ho fatto.
'PriceS' - la funzione può essere dichiarata solo nell'ambito globale 252 10
Ho capito che la funzione deve essere globale!
Tradotto l'errore nel traduttore dice
Esatto, era anche scritto nell'esempio. Se ho capito bene è possibile selezionare il tipo di ordine, cosa che ho fatto.
'PriceS' - la funzione può essere dichiarata solo nell'ambito globale 252 10
Ho capito che la funzione deve essere globale!
Tradotto l'errore nel traduttore dice
Posizionare la funzione al di fuori della funzione di avvio
E nel corpo della funzione di avvio, la chiamate così:
3 parametri magik, separati da virgola, metti il tuo o 0
Posizionare la funzione al di fuori della funzione di avvio
Nel corpo della funzione di avvio, la chiamate così:
3 parametri magik, separati da virgola, metti il tuo o 0
Grazie mille!!! Appena ho messo la funzione fuori dalla funzione start, tutti gli errori sono scomparsi!!!