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

 
Ciao a tutti, consigliare se è possibile (se il prezzo sale, l'ordine rimane aperto, ma se il prezzo è sceso in 2 punti, chiudere l'ordine) consigliare come farlo correttamente
if (iMomentum(NULL,0,-2,PRICE_HIGH,0)) 
      {
      OrderClose(OrderTicket(),OrderLots(),0,Bid,Violet);
 
artmedia70:

Non capisco... Perché avete bisogno di calcolare lo spread medio su n-numero di barre della storia nella funzione di definizione dei criteri di trading?

Se avete intenzione di usare le funzioni del libro di testo inglese, allora avrebbe più senso farlo nella funzione Events().

Questo è tutto, guardate come SK suggerisce di tracciare il cambiamento dello StopLevel del broker. Ciò che vi impedisce di seguire esattamente lo stesso modo di tracciare il cambiamento di diffusione e, se c'è, inserire il valore successivo nella matrice. Bene, e quando si riempie la matrice calcolare la sua "temperatura media in ospedale" (c) SK ...

L'idea è che in diversi momenti della giornata ci sono diversi spread e a volte il mio sistema di trading negozierà con successo ad uno spread medio di diciamo 12 punti, e ad uno spread di 6 punti sarà in perdita e viceversa, se lo regolo a spread 6, perderà a spread 12, cioè i livelli di ordini pendenti dipendono da questo parametro, posterò tutte le mie idee più tardi, ma ora devo fare qualcosa per gradi, e ho anche affrontato il livello Freeze per la prima volta oggi, quindi cosa significa? se ho aperto un ordine con un take e uno stop ed è a mercato, è in più di 100 pips in cinque cifre e il take era originariamente a 150 pips, ma ora è in più, Non posso fermare la perdita o prendere profitto se ho impostato stop-loss e take-take e se il prezzo è vicino alla zona non posso fermare la perdita o prendere profitto. di conseguenza, il sistema ha funzionato correttamente, ho dato un comando di inversione, ma il terminale è fallito e il prezzo è sceso senza prendere una posizione Sell e senza prendere una posizione Buy

Come si combatte?

 
ex_kalibur:

L'idea è che in diversi momenti della giornata ci sono diversi spread, e succede che con uno spread medio, il mio sistema di trading farà trading con successo con uno spread di, diciamo, 12 punti, e con uno spread di 6 punti perderà soldi. Se regolo lo spread per 6 allora a 12 punti perderà soldi, cioè questo parametro dipende dai livelli di ordini pendenti, posterò l'intero piano più tardi, ma ora devo fare qualcosa passo dopo passo per non far ridere la gente, se ho aperto un ordine con un take e uno stop ed è a mercato, è in più di 100 pips in cinque cifre e il take era originariamente a 150 pips, ma ora è in più, Non posso fermare la perdita o prendere profitto se ho impostato stop-loss e take-take e se il prezzo è vicino alla zona non posso chiudere la perdita o prendere profitto. di conseguenza, il sistema ha funzionato correttamente, ho dato un comando di inversione, ma il terminale è fallito e il prezzo è sceso senza prendere una posizione Sell e senza prendere una posizione Buy

Come posso combatterlo?

Sembra che tu sia nel posto giusto...
 
Programmo solo da tre giorni, non riesco a capire come scrivere la parte del programma relativa al trailing stop.

Il problema è che tutto funziona, MA! sposta lo stop loss sia da una parte che dall'altra, cosa devo aggiungere in modo che sposti lo stop loss solo dalla parte del trade aperto?

Ecco fondamentalmente il mio:

if (Ticket> 0)
{
if (Opn_B == true)
{
SL = Ask - TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
if (Opn_S == true)
{
SL = Ask + TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
}
 

ex_kalibur grazie per l'inbox, ti manderò un'email qualche volta.

 
ZahvatkiN:

ex_kalibur grazie per l'inbox, ti manderò un'email qualche volta.

Mi scusi?
 

Buona sera!

Potete dirmi come posso esportare i dati di un grafico(valori degli indicatori) da Metatrader 4 a Exel?

Sarei felice di ricevere aiuto e consigli :)

 
Lastampa ti aiuterà :)
 

Caro artmedia70, ti sono molto grato che stai aiutando attivamente in questo thread, i seguenti scritti sono principalmente indirizzati a te, ma se ci sono più professionisti, per favore non passare e aiuta, si è rivelato come in una favola, più lontano nel bosco più legna da ardere, come risultato di avvolgimento ho colpito un muro, e ho davvero bisogno di aiuto, spero che questa strategia sarà attuata e molti principianti acquisiranno esperienza in una programmazione coerente ed efficace

il problema è questo:

1. Trovare le variabili Bassa e Alta (il processo di trovare ciascuna di esse rimane diverso)

2. è necessario calcolare lo spread medio per gli ultimi N ticks (la variabile N in quella esterna)

3. Assumendo Alto - Basso > della diffusione media in k parti della larghezza del canale (per esempio 2/3 o minimo 1/3 della larghezza del canale)

4. Una volta che queste condizioni sono soddisfatte, gli ordini in sospeso vengono piazzati:

- sopra la linea Alta - Vendere

- sotto la linea Low - Bay

Gli ordini vengono piazzati su entrambi i lati usando la griglia:

*L'ordine di vendita più vicino sarà il volume minimo, e viene piazzato se possibile al livello di High,

* L'ordine successivo sarà piazzato a una distanza di High + un certo numero di punti (per esempio: High + (High - Low))

* Il numero totale di ordini dovrebbe essere impostato in una variabile esterna, in questo caso ogni ordine non ha un volume uguale (per esempio il primo 0,1, il secondo 0,2, il terzo 0,3 ecc. Qui si ipotizzano diversi metodi di aumento dei volumi in progressione aritmetica o in progressione geometrica, decideremo qui più tardi, rispettivamente, questo blocco dovrebbe essere fatto una funzione separata)

* StopLoss è esposto come segue: nelle impostazioni esterne si specifica lo SL desiderato, poi sul primo (è il più piccolo) SL equivale a StopLoss (dalle impostazioni), ogni StopLoss successivo sarà uguale allo stesso valore del primo (per 0,1 = 60 punti, per 0,2 = 40 punti) cioè in caso di attivazione di uno StopLoss sull'ordine più piccolo tutti gli ordini saranno chiusi in una volta

* Take Profit è uguale a (High -Low)* Point + Open Price

*Condizioni di chiusura del mercato:

aprire Bay-

Se l'ordine è in profitto, il livello High è cambiato ed è diventato inferiore al valore precedente, Bid>= High, StopLewel permette di chiudere l'ordine, allora tutti gli ordini aperti del tipo Bay vengono chiusi, a partire dal volume più grande del nostro strumento

*Condizioni di apertura secondo il mercato:

se Bay ==0, e allo stesso tempo Bid < Low e allo stesso tempo Ask < High + spread medio, allora apriamo con il volume minimo consentito e cancelliamo l'ordine pendente di questo tipo con il volume minimo (se le condizioni lo permettono)

se durante la negoziazione si apre un nuovo ordine pendente con un valore maggiore del primo, e si chiude allo stesso prezzo di chiusura, apriamo un nuovo ordine pendente con lo stesso volume, allo stesso prezzo che è stato chiuso (se le condizioni lo permettono) e se piazzare un ordine pendente è impossibile, e dopo la chiusura dell'ultimo ordine, il prezzo incrocia nuovamente il prezzo aperto dell'ultimo ordine chiuso allora

torniamo al mercato con lo stesso volume e allo stesso prezzo con + slippage

* Dopo che il primo ordine (è l'ordine con il volume minimo) viene chiuso, tutti gli ordini di acquisto pendenti vengono cancellati, si presume che non ci siano più ordini aperti, poi l'ordine viene ricalcolato e la griglia viene lanciata di nuovo.

* Per tutto il tempo vengono calcolati gli ordini aperti per il tipo di ordine opposto e rispettivamente viene lanciata una griglia con il tipo di ordine opposto.

* L'apertura di ordini opposti non è consentita mentre il primo ordine (con il volume minimo) è aperto.

5. calcolo del volume del lotto, consentito sia fisso che percentuale nelle impostazioni:

Se tutti gli ordini hanno un volume fisso - tutti gli ordini con un volume fisso

-con fisso - il volume totale di tutti gli ordini in caso di chiusura della griglia (serie) con uno stop loss, non dovrebbe superare la perdita in % consentita.

Di conseguenza, i volumi sono calcolati nell'ordine in cui il massimo è il più lontano dal prezzo corrente e con lo stoploss minimo e quelli più vicini al prezzo sono i minimi (

Esempio la serie 0.1\0.2\0.3\0.4\0.5 si presenta così - se abbiamo abbastanza soldi e la % permette di aprire in questo ordine

serie 0.1\0.1\0.1\0.2\0.3 - in questo caso non abbiamo abbastanza soldi per tutta la serie

6. blocco del calcolo del deposito minimo

*qui si verifica il calcolo della possibile perdita massima è calcolato sulla base dei valori delle variabili High,Low si considera che tutti gli ordini pendenti saranno aperti, e saranno chiusi su Stop Loss, di conseguenza la perdita data dovrebbe fare una certa percentuale del deposito, su ciò che dopo i calcoli il trader riceve un messaggio:

"con la % di rischio scelta, se gli ordini vengono chiusi da uno stop loss, subirete una perdita di ...",

o "non ci sono abbastanza soldi per implementare una serie di stop, Expert Advisor non funziona".

7. Ho solo una funzione: tenere traccia degli eventi, informativo, vorrei vedere gli errori come se fossero in un libro.

8. e probabilmente l'ultimo, qualche "pulsante" o una funzione speciale che quando si clicca su di esso (o si cambiano le impostazioni), tutti gli ordini pendenti di tipo opposto all'apertura (se il mercato è buy, allora tutti vengono rimossi) vengono cancellati, e l'esperto lavora fino alla chiusura della serie

Vorrei chiedervi di scrivere un programma secondo la struttura del libro https://book.mql4.com/ru/build/index.

per fare questo in questo post, allegherò tutti i file dal libro, e in ciascuno di questi file inizierà il lavoro, dopo il completamento di ogni singolo file sarà salvato e anche allegato al pubblico, al completamento del programma di codifica sarà anche pubblicato su questo forum

vi avverto subito che questa idea è esclusivamente cognitiva, natura educativa, e non garantisce che al completamento dell'esperto sarà redditizio, riguarda tutti i polipi che passano giorni e ore alla ricerca di grails, e vogliono schiacciare il culo di un altro un riccio ))))

Il mio obiettivo personale al termine della programmazione è quello di imparare a codificare in questa struttura, intendo con tutte le regole: commenti, funzioni individuali, file esterni, lavoro con le librerie e cose del genere.

 

La 1a tappa è molto importante, penso che sia addirittura basilare, è un capitolato d'oneri formulato correttamente, accessibile, in modo che il programmatore capisca cosa gli si chiede

Quindi sto aspettando i commenti sul mio schema, scriviamo un ToR corretto e poi cominciamo

Motivazione: