[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 360

 

Buona sera a tutti!

Ho bisogno di codificare il seguente algoritmo.

Metti un ordine pendente SELLSTOP all'apertura di una candela zero

SOLO se non c'è un SELLSTOP già piazzato su quella candela.

Cioè, su una candela zero per mettere un SELLSTOP ... e non di più.

Ho implementato con successo questa idea di un ordine SELL in questo codice

===========================================================

int last_order_bar = 0;
int ot = OrdersTotal();

if (ot>0) //se ci sono ordini nel mercato (sia mercato che TARGET)

if (OrderSelect (ot-1,SELECT_BY_POS)) //seleziona l'ultimo ordine
if ( OrderType ()==OP_SELL) //se questo è un ordine di mercato SELL aperto

last_order_bar = iBarShift (Symbol (),0,OrderOpenTime ())//ricorda la sequenza N della candela in cui questo ordine di mercato SELL è stato aperto

(ot==0 || last_order_bar>0) //se nessun ordine è aperto o se l'ultimo ordine non è sulla barra corrente

if( Bid ==iOpen (Symbol (),0,0))//se prezzo = prezzo aperto della barra

//ordine aperto

Non posso applicare questo algoritmo agli ordini pendenti perché OrderOpenTime () come parametro iBarShift ( ), se non mi sbaglio, restituisce solo il tempo di apertura di un ordine a mercato,

non uno in sospeso.

Potresti passare il tempo di immissione di un ordine pendente come parametro a iBarShift ( )?

O come posso implementare ciò che voglio?

Grazie.

 
solnce600:

Potresti passare il tempo di apertura dell'ordine pendente come parametro a iBarShift ( )?

Dopo aver aperto un ordine in sospeso, salva il tempo in cui è stato aperto in una variabile globale,

fare un biglietto nel nome della variabile per differenziare una variabile da un'altra

+ controllare gli ordini pendenti chiusi/cancellati per cancellare le variabili dalla memoria.
 
sergeev:

dopo aver aperto un ordine in sospeso, salvare il suo tempo di apertura in una variabile globale,

mettere un biglietto nel nome della variabile, per distinguere una variabile di un ordine pendente da un'altra

+ monitorare gli ordini pendenti chiusi/cancellati per cancellare le variabili dalla memoria.

E quale funzione restituisce il tempo aperto dell'ultimo ordine pendente?

Per esempio, applicato a un ordine a mercato, è chiaro che OrderOpenTime () restituisce il tempo dell'ultima apertura dell'ordine a mercato?

Oppure, il tempo di apertura di un ordine in sospeso può essere salvato senza utilizzare la funzione?

Se è così, vi sarei molto grato se poteste mostrarmi nel codice come si fa?

Grazie mille per la sua pronta risposta.

 
solnce600:

Quale funzione restituisce il tempo di apertura dell'ultimo ordine pendente?

Nel tuo caso - hai bisogno di salvare Time[0]
 
sergeev:
nel tuo caso - hai bisogno di salvare Time[0]

Ok, grazie.
 

Ciao a tutti!

Sto scrivendo una specie di indicazione, che userebbe i segnali di RSIOMA, ma non riesco a ottenere i valori necessari dei buffer marsiomaXupSig e marsiomaXdnSig. Il codice RSIOMA ha le seguenti linee SetIndexBuffer(6,marsiomaXupSig); SetIndexBuffer(7,marsiomaXdnSig);"...." if(RSIBuffer[i+1]<=marsioma[i+1]&&RSIBuffer[i]>marsioma[i]) marsiomaXupSig[i] = -11; if(RSIBuffer[i+1]>=marsioma[i+1]&&RSIBuffer[i]<marsioma[i]) marsiomaXdnSig[i] = 11; provo a ricevere i dati nel mio indicatore come segue

double marsiomaXupSig = iCustom(NULL, Period(), "RSIOMA_v3",RSIOMA,RSIOMA_MODE,RSIOMA_PRICE,Ma_RSIOMA,Ma_RSIOMA_MODE,BuyTrigger,SellTrigger,BuyTriggerColor,SellTriggerColor,MainTrendLong,MainTrendShort,MainTrendLongColor,MainTrendShortColor,MajorTrend,marsiomaXupSigColor,marsiomaXdnSigColor,BarsToCount,6,0);

double marsiomaXdnSig = iCustom(NULL, Period(), "RSIOMA_v3",RSIOMA,RSIOMA_MODE,RSIOMA_PRICE,Ma_RSIOMA,Ma_RSIOMA_MODE,BuyTrigger,SellTrigger,BuyTriggerColor,SellTriggerColor,MainTrendLong,MainTrendShort,MainTrendLongColor,MainTrendShortColor,MajorTrend,marsiomaXupSigColor,marsiomaXdnSigColor,BarsToCount,7,0);

Logicamente avrei dovuto ottenere i valori 11 e -11, ma quando registro i valori ottengo solo 2013.05.28 09:05:52 2013.01.04 11:29 my EA XAUUSD,H1: marsiomaXdnSig - 2147483647 2013.05.28 09:05:52 2013.01.04 11:29 my EA XAUUSD,H1: marsiomaXupSig - 2147483647 Cosa sbaglio?


 

Buon pomeriggio! Ho iniziato ad inventare una funzione per qualche motivo, ed ecco, un mucchio di errori... Sembra essere corretto, l'ho guardato per 15-20 minuti.

RasstawimOrdera(int Raz,double Dist_pervaya,double Dist_dalshaya,double TP, double SL,double Lot) ................

'RasstawimOrdera' - espressione sullo scopo globale non consentita C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Square.mq4 (73, 1)

'Raz' - variabile già definita C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Snap.mq4 (73, 21)

'double' - variabile attesa C:\Documents and Settings\User\FxClub\FieldClub\eleTrade\experts\Speaker.mq4 (73, 25)

'Dist_pervaya' - espressione sullo scopo globale non consentita C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Spline.mq4 (73, 32)
'Dist_pervaya' - variabile non definita C:\Documents and Settings\My Documents\FxClub\TeleTRADE\experts\Square.mq4 (73, 32)

E così via,




È un glitch. Forum. Quando rispondo di premere la barra spaziatrice, il cursore trema e corre un passo avanti e indietro, saltando spontaneamente nell'angolo in alto a sinistra. Premo il touchpad sinistro nel punto in cui voglio continuare a scrivere - no, il cursore continua a lampeggiare all'inizio del testo, e lo dipinge di blu e torna indietro. Ci sono voluti altri 10 minuti per rimproverarmi.

L'ho scritto nel blocco note e l'ho copiato.

Quindi, capisco che ci può essere un punto mancante lì, per esempio io, o qualche sciocchezza, ma non capisco. Per favore, datemi un suggerimento!

 
Credo di aver già capito. Chi ha pensato con me, GRAZIE!!!
 
Che tipo di RSIOMA è? Poi, controllate molto attentamente tutto quello che mettete nella funzione, io così già non riesco a ricordare dove ha cosa . Meglio ancora, stampate le stampe!
 

No... Naturalmente, ora ho dichiarato che la funzione è int... Ma ora...

errorcomment' - espressione sullo scopo globale non permessa C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Contructor.mq4 (80, 11)

Che cos'è, dove devo guardare?