[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 475
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
Grazie!!!
Ecco il link iniziale - poi il resto, IMHO.
Si prega di spiegare
La parte analitica utilizza un orizzonte temporale rigidamente definito. O tempi
La parte analitica utilizza un orizzonte temporale rigidamente definito. O tempi
potresti per favore eliminare il "pesce" per il parsing, se hai qualche commento lo apprezzerei
Ok, ho un'idea, forse è un po' arrapante... No, è solo che non è del tutto giusto, sembra che quando viene rilevato un ordine di acquisto, tutti gli ordini in sospeso vengono rimossi... Tutti gli ordini di acquisto. stsBUY dovrebbe essere impostato prima dell'inizio. Non ho controllato gli errori.
Avremmo bisogno di un codice più corretto. Nessun errore
E la logica è pessima.
Potresti per favore lasciar perdere il "pesce" per il parse, se hai qualche commento te ne sarei grato.
Dovresti almeno leggere un po' il libro di testo, in modo da non dover chiedere quanti "due volte due" sono.
Dovresti almeno leggere un po' il libro di testo, così non devi chiedere quanto è "due volte due".
Non discuto che sia un punto importante, ma se lo capissi, non lo chiederei, giusto?
Cioè nell'algoritmo, dove sono specificati i timeframe negli indicatori, lo diciamo chiaramente.
Giusto?
allora spiegami quanto segue ....
Expert Advisor - incrocio di stocastico, entrata in un trade.
Ecco l'algoritmo
int start()
{
RefreshRates(); // Aggiorna i dati
Symb=Symbol();
x1=x;
y1=y;
x=iStochastic( NULL,0,5,3,3,MODE_SMA,1,0,0); // valore della linea principale stocastica sulla barra 0
y=iStochastic( NULL,0,5,3,3,MODE_SMA,1,1,0); // valore della linea del segnale stocastico sulla barra 0
Alert ("stocastico principale",x);
Alert ("segnale stocastico",y);
//---- intersezione delsegnale e della linea principale
if (y < x && y1> x1) // Check up pass
{
f=1 // flag up
}
//--------------------------------------------------------------------
if (y > x && y1< x1) // controlla il passaggio verso il basso
{
f=2; // flag down
}
//---- controlla l'intersezione verso il basso della linea principale con la linea 20
if (f==1 && x1<20&& x1<20 && x>= 20)
{ if (Ticket > 0) // se c'è un ordine, rimuovere l'ordine
OrderClose(Ticket,Lts,Bid,10);
SL=Bid - StopLoss*Point; // Calcolo di SL aperto
TP=Bid + TakeProfit*Point; // Calcolo del TP aperto.
Alert("Tentativo di aprire Buy. In attesa di risposta...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//open Buy
}
if (Ticket > 0) // Ha funzionato :)
{
Alert ("Opened Buy order ",Ticket);
return;
f=0; // reset flag
}
}
//---- controllare l'attraversamento della linea principale dall'alto al basso della linea 80
if (f==2 &&& x1>80 && x<= 80)
{ if (Ticket > 0)
OrderClose(Ticket,Lts,Ask, 10); // se c'è un ordine, rimuovere
SL=Ask + StopLoss*Point; // Calcolo di SL
TP=Ask - TakeProfit*Point; // Calcolo del TP aperto.
Alert("Tentativo di aprire Sell. In attesa di risposta...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//Open Buy
}
if (Ticket > 0) // Ha funzionato :)
{
Alert ("Sell order opened ",Ticket);
return;
f=0; // zeroize flag
}
}
return(0);
}
se eseguiamo, l'Expert Advisor aprirà e chiuderà gli ordini entro mezz'ora, cioè aprirà alle 9.04, chiuderà alle 9.05, aprirà di nuovo alle 9.06, chiuderà alle 9.07 e così via, nella stessa direzione.
perché succede questo?
Saluti.
E se due ordini BUYLIMIT e BUYSTOP sono aperti, ho bisogno di cancellare BUYSTOP all'attivazione di BUYLIMIT e viceversa. Puoi dirmi come questa condizione può essere soddisfatta?
In realtà, la logica dovrebbe andare più o meno così:
1. Se ci sono due ordini pendenti e nessuna posizione, allora ricorda i tick di questi ordini pendenti nelle variabili.
2. Se c'è un SellStop pendente e non c'è un BuyStop pendente, se c'è una posizione Buy, confronta il ticket dell'ultima posizione Buy aperta con il ticket BuyStop ricordato.
Se sono uguali, significa che ByStop è stato convertito in Buy sul mercato --> se c'è un SellStop in sospeso, cancellalo. 3.
Se c'è un BuyStop pendente e nessun SellStop pendente, se c'è una posizione Sell, confronta il ticket dell'ultima posizione Sell aperta con il ticket SellStop ricordato.
Se sono uguali, allora il SellStop viene convertito in market Sell --> se c'è un BuyStop in sospeso - cancellalo.
Circa lo stesso... Questa è solo una logica approssimativa. Ha bisogno di funzioni.