Aiuto per la codifica - pagina 130

 

Non so se sono oggetti o buffer. E' anche possibile inviare ordini nell'indicatore in modo da non aver bisogno di alcun expert advisor? Qual è l'algoritmo per aprire ordini senza stoploss e take profit?

Ma penso di volere un expert advisor, aprire gli ordini in base alla comparsa delle frecce e chiudere gli ordini quando arriva il segnale di chiusura. Posso identificare gli ordini aperti in base al simbolo?

 
arroganzmaschine:
Non so se sono oggetti o buffer. E' anche possibile inviare ordini nell'indicatore in modo da non aver bisogno di un expert advisor? Qual è l'algoritmo per aprire ordini senza stoploss e take profit?

1. Gli oggetti saranno visibili nella lista degli oggetti

2. No. Non si possono gestire gli ordini da un indicatore

3. Per aprire degli ordini (tipo di ordine di formica) bisogna usare order send. Aiuto per la funzione OrderSend() :

______________________________________

int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

La funzione principale usata per aprire una posizione o piazzare un ordine pendente.

Restituisce il numero del ticket assegnato all'ordine dal server commerciale o -1 se fallisce. Per ottenere ulteriori informazioni sugli errori, si deve chiamare la funzione GetLastError().

Note:

All'apertura di un ordine a mercato (OP_SELL o OP_BUY), solo gli ultimi prezzi di Bid (per la vendita) o Ask (per l'acquisto) possono essere usati come prezzo aperto. Se l'operazione viene eseguita con un titolo diverso da quello corrente, bisogna utilizzare la funzione MarketInfo() con il parametro MODE_BID o MODE_ASK per ottenere le ultime quotazioni di questo titolo. Il prezzo calcolato o non normalizzato non può essere applicato. Se non c'è stato il prezzo aperto richiesto nel thread del prezzo o non è stato normalizzato secondo la quantità di cifre dopo la virgola, si genera l'errore 129 (ERR_INVALID_PRICE). Se il prezzo aperto richiesto è completamente scaduto, verrà generato l'errore 138 (ERR_REQUOTE) indipendentemente dal parametro slippage. Se il prezzo richiesto non è aggiornato, ma presente nel thread, la posizione sarà aperta al prezzo corrente e solo se il prezzo corrente si trova all'interno del range di prezzo+-slippage.

I livelli di StopLoss e TakeProfit non possono essere troppo vicini al mercato. La distanza minima dei livelli di stop in punti può essere ottenuta utilizzando la funzione MarketInfo() con il parametro MODE_STOPLEVEL. In caso di livelli di stop errati o non normalizzati, verrà generato l'errore 130 (ERR_INVALID_STOPS).

All'immissione di un ordine pendente, il prezzo aperto non può essere troppo vicino al mercato. La distanza minima del prezzo pendente da quello corrente del mercato in punti può essere ottenuta utilizzando la funzione MarketInfo() con il parametro MODE_STOPLEVEL. In caso di falso prezzo aperto di un ordine pendente, verrà generato l'errore 130 (ERR_INVALID_STOPS).

L'applicazione del tempo di scadenza dell'ordine pendente può essere disabilitata in alcuni server di trading. In questo caso, quando si specifica un valore diverso da zero nel parametro expiration, si genera l'errore 147 (ERR_TRADE_EXPIRATION_DENIED).

In alcuni server di trading, la quantità totale di ordini aperti e in sospeso può essere limitata. Se questo limite è stato superato, nessuna nuova posizione sarà aperta (o nessun ordine pendente sarà piazzato) e il server di trading restituirà l'errore 148 (ERR_TRADE_TOO_MANY_ORDERS). Parametri:

].[TD="width: 100%"]Livello di stop loss.

[TR]

[TD]takeprofit[TD] - [TD="width: 100%"]Livello di take profit.

[TR]

[TD]comment[TD] - [TD="width: 100%"]Testo di commento all'ordine. L'

[TR]

[TD]magic[TD] - [TD="width: 100%"]Numero magico dell'ordine. Può essere usato come identificatore definito dall'utente.

[TR]

[TD]expiration[TD] - [TD="width: 100%"]Tempo di scadenza dell'ordine (solo per ordini pendenti).

[TR]

[TD]arrow_color[TD] - [TD="width: 100%"]Colore della freccia di apertura sul grafico. Se il parametro manca o ha il valore CLR_NONE la freccia di apertura non viene disegnata sul grafico.
symbol[/TD] -[/TD]Simbolo per il trading.[/TD]

[/TR]

cmd[/TD] -[/TD]Tipo di operazione. Può essere uno qualsiasi dell'enumerazione delle operazioni di trading.[/TD]

[/TR]

volume[/TD] -[/TD]Numero di lotti.[/TD]

[/TR]

prezzo[/TD] -[/TD]Prezzo preferito dell'operazione.[/TD]

[/TR

slippage[/TD] -[/TD]Slippage massimo di prezzo per ordini di acquisto o vendita
[
/TD]

[/TR]

stoploss[/TD] -
ultima parte del commento può essere cambiata dal server.

Esempio:

int ticket;

if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)

{

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);

if(ticket<0)

{

Print("OrderSend failed with error #",GetLastError());

return(0);

}

}

 

Posso inviarti l'indicatore per darti qualche consiglio?

 
arroganzmaschine:
Posso inviarti l'indicatore per darti qualche consiglio?

Puoi postarlo (se non è un indicatore privato o commerciale)

 

È privato . Penso di dover leggere tutto per arrivare alla mia soluzione.

Posso chiudere gli ordini da uno specifico Symbol dove appare il segnale di chiusura?

 
arroganzmaschine:
E' privato . Penso di dover leggere tutto per arrivare alla mia soluzione. Posso chiudere gli ordini da uno specifico Symbol dove appare il segnale di chiusura?
Prova a leggere prima questi due thread

:https://www.mql5.com/en/forum/173136 https://www.mql5.com/en/forum/173171

inoltre potrebbe essere utile che tu parta da questo post https://www.mql5.com/en/forum/172969/page2

e sarà molto più facile trovare informazioni sulla codifica mql se segui i link da quel post
 

Grazie, vi risponderò più tardi.

 

Mladen, una domanda veloce per favore, il ptl2 ( linea di tendenza perfetta) e l'indicatore alerts si ridipingono?

 

Ho visto che ci sono anche degli avvisi. Vengono inviati quando alcuni IndexBuffer hanno il valore giusto.

Posso inviare i miei ordini con alcune clausole if{?

 
funayot:
Mladen, una domanda veloce per favore, l'indicatore (perfect trend line) ptl2 and alerts si ridisegna?

No, l'indicatore '(perfect trend line) ptl2 and alerts' non si ridisegna dopo la chiusura della barra!