[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 197
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
Compagni, aiuto per favore... Ho scritto un codice semplice, ma quando si compila dice che le parentesi sono sbilanciate, ma le ho già contate 300 volte - tutto è a posto
L'idea è semplice - se il MACD è stato sopra (o sotto) lo 0 per 7 minuti o meno, la posizione si apre
Controlla questa funzione
p.s. come fai a disegnare una sceneggiatura così bene come fai tu?
C'è un pulsante SRC quando scrivi la tua risposta.
Per quanto riguarda le parentesi, ho l'abitudine di specificare a cosa si riferisce la parentesi chiusa
}//per
}// (segnale...
E per quanto riguarda le parentesi, ho l'abitudine di specificare a cosa si riferisce la chiusura
}//per
}// (segnale...
"a gusto e colore..." - ma devo ammettere che questo approccio sovraccarica il codice di informazioni inutili + richiede tempo per scrivere linee di codice extra + non risolve il problema della nidificazione profonda (numerazione dei livelli?)
Strutturare meglio il codice - come nell'esempio precedente
Buon pomeriggio, potreste dirmi come scrivere una condizione in modo che dopo aver aperto un ordine, il secondo non possa aprirsi sulla stessa candela. Scrivo quanto segue:
se (... && CountOrder<2 && (BarLast>1 || BarLast==-1))
{
OrderSend(Symbol(),OP_BUY,MinLot,Ask,0,VStopLossLong,0, "BUY: ",MagicL,0,Green);
}
dove
// conta il numero di ordini aperti per un titolo
int CountOrder=0;
for (int j=0; j<OrdersTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()) CountOrder++;
// numero di barra dell'ultima posizione chiusa o -1, se non è stata ancora aperta
int BarLast=BarLastClosePose();
и
// numero di barra dell'ultima posizione chiusa
int BarLastClosePose()
{
datetime t;
int i;
for (i=0; i<OrdersHistoryTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
//se (OrderMagicNumber()!=Magic) continua;
se (OrderSymbol()!=Symbol()) continua;
se (OrderType()>1) continua;
se (t<OrderCloseTime()) t=OrderCloseTime();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Controlla questa funzione
Vinin, verificato, tutto va bene in questa funzione... return(0) si riferisce alla funzione iniziale, e se non si contano le parentesi attaccate a return'y, si ottengono 14 parentesi... 7 a testa
Vinin, verificato, tutto va bene in questa funzione... return(0) si riferisce alla funzione iniziale, e se non si contano le parentesi che sono attaccate a return'y, si ottengono 14 parentesi... 7 in ogni direzione.
Copiare ogni funzione in un file separato e verificare la compilazione aiuta.
Se le parentesi sono corrette, allora indica dove finisce l'inizio e inizia il segnale MACD.
Copiare ogni funzione in un file separato e verificare la compilazione aiuta.
Se le parentesi sono corrette, indica dove finisce l'inizio e inizia il segnale MACD.
hmm... int signal_MACD() è effettivamente una funzione... ma perché deve essere dietro la funzione start? onestamente non capisco perché alcune funzioni sono scritte fuori dallo start e altre dentro... qual è la differenza?