Come codificare? - pagina 273

 

takeprofit non eseguito

Ci sono due possibili ragioni.

In primo luogo il takeprofit potrebbe essere considerato troppo vicino al prezzo aperto perché il broker lo accetti.

Controlla il trade per vedere se il takeprofit ha un valore.

In secondo luogo, le operazioni di vendita escono all'Ask, quindi l'Ask deve raggiungere il livello di takeprofit.

Qual è lo spread del tuo broker per quella coppia e in quel momento?

Questo farebbe sì che l'uscita effettiva sia a Bid - Spread.

Robert

 
LuisAY:

Mi piacerebbe sapere come leggere questi cerchiati in azzurro,

qualche esempio di codice per indicarmi la giusta direzione?

Grazie in anticipo.

Il nome dell'indicatore non è un commento.

Dato che il nome è visibile puoi usare

doppio MaxValue, MinValue;

int WindowNum = WindowFind("Volume"); // restituisce -1 se non viene trovato

se (WindowNum >= 0)

{

MaxValue = WindowPriceMax(WindowNum);

MinValue = WindowPriceMin(WindowNum);

}

Spero che questo aiuti.

BTW, quando si apre l'editor di MT4 c'è una finestra chiamata Navigator che elenca le funzioni in MT4 con descrizioni ed esempi di come usarle.

Robert Hill

Programmatore professionale MT4

 

[langtitle=de]takeprofit non eseguito[/langtitle]

MrPip:
Ci sono due possibili ragioni.

Innanzitutto il takeprofit potrebbe essere considerato troppo vicino al prezzo di apertura perché il broker lo accetti.

Controlla il trade per vedere se il takeprofit ha un valore.

In secondo luogo, le operazioni di vendita escono all'Ask, quindi l'Ask deve raggiungere il livello di takeprofit.

Qual è lo spread del tuo broker per quella coppia e in quel momento?

Questo farebbe sì che l'uscita effettiva sia a Bid - Spread.

Robert

[Grazie per la tua veloce risposta.

Ho un broker ECN (FXOpen) (5digits). Penso che tu abbia ragione per quanto riguarda lo spread. Ma è un valore costante di 102 (=(Ask - Bid)*(1/Point)) e non cambia continuamente durante l'esecuzione del tester della strategia. Perché? Sui sistemi live lo spread cambia quasi permanentemente. Inoltre perché non ricevo un OrderSend Error 130?

Grazie per l'aiuto[/lang].

 
MrPip:
Il nome dell'indicatore non è un commento.

Poiché il nome è visibile, potete usare

doppio MaxValue, MinValue;

int WindowNum = WindowFind("Volume"); // restituisce -1 se non viene trovato

se (WindowNum >= 0)

{

MaxValue = WindowPriceMax(WindowNum);

MinValue = WindowPriceMin(WindowNum);

}

Spero che questo aiuti.

BTW, quando si apre l'editor di MT4 c'è una finestra chiamata Navigator che elenca le funzioni in MT4 con descrizioni ed esempi di come usarle.

Robert Hill

Programmatore professionale MT4

Questo è esattamente quello che stavo cercando, ...speravo solo che gli scrittori tecnici del file di aiuto avessero il buon senso che mostri nell'esempio.

L'altra domanda che ho è: il commento o nota che serve come nome nell'indicatore personalizzato si chiama "IndicatorShortName" e contiene un valore, ora, vorrei leggere questo valore. Potrei trovare un modo per aggirarlo facendo una variabile che tenga anche questo valore quando la dichiaro, ma è di buon senso per me che ci deve essere un modo per usare il valore di "IndicatorShortName".

Grazie

 

haha, l'ho trovato - il codice che ho fatto (ma non lo uso in questi giorni)

non dovrebbe dare un SUGGESTION ENTRY, finché non c'è qualche consolidamento osservato (quindi è un po' intelligente - semplice logica usata però)

riformula le tue domande - non è chiaro

tiny.cc/imtran

====

questo è uno scavo, per mostrare che faccio un po 'di codifica

Ho passato 1 mese su questo indicatore (che ho costruito io stesso)

Quello che fa è usare il testo bianco di commento

per dirmi a che livello di prezzo piazzare un ordine Limit

ti lascio questi 3 link, se ti piace leggere le cose, apri l'IDE METAEDITOR e impara la codifica di mq4 -- dovrebbe usare qualche indicatore di esempio migliore -- è come

definire colore e spessore

disegnare alcune cose sul grafico

contare il numero di candele

eseguire una formula aritmetica (così difficile)

fare più calcoli e ifthenelse

la maggior parte degli indicatori MQ4 sono in questo formato, quindi fate attenzione a >> disegnare alcune cose sul grafico

---- potrebbe essere un po 'implicito, o autorun per qualche disegno finale, ma mq4 sono come questo modo ---

http://tiny.cc/linsay3

http://tiny.cc/linsay2

http://tiny.cc/linsay1

Non do via facilmente il mio STUFF DI SVILUPPO

- questo potrebbe non essere utile nel commercio (ma ho imparato molto su MQ4, il compilatore non è così duro)

c'è un membro chiamato WID - non so quanto sia bravo -- codifica, se è bravo e si attiene all'accordo di riservatezza, penso che gli darei l'intero indicatore (buona cosa per giocare, però)

===

In realtà, ho un punto qui

COMMENT -- nessun'altra funzione di MQ4 è più facile di questa

molto simile a PRINT ("oooh, forex bluffer, buon momento per entrare a prezzo" ; perfectpriceVariable);

cioè può essere usato come un consulente TEXT, trigger, mostrando qualsiasi valore variabile, ecc.

Basta aggiungerlo al tuo indicatore preferito, poi puoi farlo apparire e scomparire e darti il TRIGGER

-- confronto con poche ore fa ecc === tutte queste codifiche sono CHILDPLAY

Tuttavia, se avete il vostro indicatore preferito, dovete prima capire quell'indicatore preferito INSIDE -OUT

per esempio quale SEGNO state cercando, come cambierà la variabile

PRIMA di poter aggiungere una linea di commento (.... ....) [ Ho un esempio qui nello ScreenCap]

Vorrei solo che a più persone piacesse codificare, piuttosto che lamentarsi -- scrivendo questo

==== assumiamo che "IndicatorShortName" sia davvero una variabile in MQ4

si potrebbe mettere da qualche parte il commento ("\n", " questa variabile circa il valore in questa barra candela è ", IndicatorShortName);

detto questo, devi cercare "IndicatorShortName" in tutto l'indicatore MQ4 per vedere cos'è questo!! è una variabile o appare davvero nell'indicatore o è una chiamata esterna -- la chiamata esterna potrebbe essere difficile, la gente scrive qualcosa del genere per farlo sembrare OOP

 
coollex:
[Grazie per la tua veloce risposta.

Ho un broker ECN (FXOpen) (5digits). Penso che tu abbia ragione riguardo allo spread. Ma è un valore costante di 102 (=(Ask - Bid)*(1/Point)) e non cambia tutto il tempo durante l'esecuzione del tester di strategia. Perché? Sui sistemi live lo spread cambia quasi permanentemente. Inoltre perché non ottengo un OrderSend Error 130?

Grazie per l'aiuto.[/lang]

Questo significa che il motivo 1 non è il problema.

Quindi con la ragione 2 il TP è 1.44743 e lo spread è 102 punti. Ciò significa che l'offerta dovrebbe essere 1,44641 quando l'Ask raggiunge il TP per uscire dal trade. Dall'immagine del tuo grafico sembra che questo non sia successo.

Ricorda che le barre sul grafico sono create dal Bid.

Robert

 

iCustom, indicatore e EA per aprire gli ordini

Ciao a tutti,

sono nuovo della programmazione mql.

Ho una funzione in indi che determina la potenza di tutte le valute. quello che voglio fare è aprire un ordine per le coppie redditizie. per questo ho un ciclo 'for' che determina la valuta più potente e poi un altro ciclo 'for' che determina la valuta più debole.

Sono bloccato su cosa fare nell'indi che può poi essere usato nell'EA per aprire ordini di coppie redditizie...

si prega di controllare il codice della funzione qui sotto....

allcurr = tutte le valute

cpow = potenza della valuta

void pro (int allcurr, double cpow)

{

for (allcurr=0; allcurr<CurrencyCount; allcurr++)

{

if (cpow > 150 || cpow >160)

{

for (allcurr=0; allcurr<CurrencyCount; allcurr++)

{

if (cpow > 40 || cpow > 0)

{

I AM STUCK HERE

} // end for weak if

} // end for weak

} // end for max if

} // end for max

} // end void pro
 

iCustom, indicatore e EA per aprire gli ordini

Ciao a tutti,

sono nuovo della programmazione mql.

Ho una funzione in indi che determina la potenza di tutte le valute. quello che voglio fare è aprire un ordine per le coppie redditizie. per questo ho un ciclo 'for' che determina la valuta più potente e poi un altro ciclo 'for' che determina la valuta più debole.

Sono bloccato su cosa fare in indi che può poi essere usato in EA per aprire ordini di coppie redditizie...

si prega di controllare il codice della funzione qui sotto....

allcurr = tutte le valute

cpow = potenza di una valuta

void pro (int allcurr, double cpow)

{

for (allcurr=0; allcurr<CurrencyRepeat; allcurr++)

{

if (cpow > 150 || cpow >160)

{

for (allcurr=0; allcurr<CurrencyRepeat; allcurr++)

{

if (cpow > 40 || cpow > 0)

{

I AM STUCK HERE

} // end for weak if

} // end for weak

} // end for max if

} // end for max

} // end void pro
 

Cambio di OrderComment?

ciao,

C'è un modo per cambiare l'OrderComment, dopo che l'ordine è stato creato?

Ho un EA che crea ordini pendenti in punti chiave che probabilmente saranno raggiunti, tuttavia a volte questi ordini devono essere cancellati/cancellati a causa di movimenti veloci indesiderati sui grafici, quindi non è possibile utilizzare il numero di ticket per identificare ogni ordine, perché ogni ordine in punti chiave può essere aperto e cancellato/cancellato più volte, così invece l'EA usa un OrderComment unico per identificare ogni ordine, ma ogni tanto il computer che esegue l'EA si guasta o la connessione internet non funziona, e questo incasina l'identificazione dell'ordine a punto chiave e quindi diventerebbe utile cambiare l'OrderComment per evitare errori causati dal casino che si crea dopo che l'EA si riavvia senza aver prima terminato l'esecuzione precedente.

Molto confuso, vero?

P.S. il numero magico viene usato per identificare gli ordini creati dall'EA, quindi non posso usare quel numero per identificare ogni ordine singolarmente.

Se qualcuno può dirmi se c'è un modo per cambiare l'OrderComments lo apprezzerei molto,

Grazie in anticipo.

 

Non so se ti ho capito bene, ma nel momento in cui"stack" fai qualcosa con il buffer dell'indicatore - devi pensare a quale valore vuoi avere in questo buffer/buffer.

Secondo, guarda in questo pezzo di codice:

if (cpow > 150 || cpow >160)

if (cpow > 40 || cpow > 0)

[/CODE]

this same effect will be when You change it for:

[CODE]

if (cpow > 150)

if (cpow > 0)

edit: Non so che effetto vuoi, ma prova a usare Arrays - probabilmente sarà necessario.

Grandi saluti

Studente polacco di computer dal momento che con grande esperienza in MQL può codificare per voi.

citazione via mail: gaa1(at)poczta(dot)fm

Economico, buono, veloce && e professionale.