ilnur17021992: SELL_Lvl è il numero di ginocchia (ordini) della griglia di vendita eSELL_NoLossLevel è il livello totale (prezzo) della CU di questi ordini. Bene, l'idea è la seguente: abbiamo bisogno di una linea disegnata a livello di una linea di acquisto e ridisegnata rispettivamente quando vengono aperte nuove linee. Non so come fare.
Non capite come determinare la linea BU di tutti gli ordini?
Probabilmente sarebbe meglio passare attraverso gli ordini nel ciclo e, a condizione che l'ordine successivo sia inferiore al precedente, selezionarlo per lavorare ulteriormente con esso. Così, quando usciamo dal ciclo, l'ordine da cancellare è già selezionato.
Oppure, puoi prima salvare la sua posizione nella lista degli ordini nel ciclo e poi selezionarlo dopo essere uscito dal ciclo usando l'indice salvato nel ciclo.
Non è così facile impostare ordini superiori e inferiori se
Sergey Gritsay: La prima opzione è più corretta. La seconda dovrebbe scrivereSymbolInfoTick(symb,Last_Tick); <<<<
Sì, l'ho appena copiato e non l'ho notato.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. È usato in trailing stop, può tirare una griglia fino al 50pc.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. Usato in trailing stop, può tirare una griglia fino al 50pc.
Per il trailing stop è ovviamente meglio metterlo una volta prima del ciclo.
Alexey Viktorov: Per il trailing stop è ovviamente meglio una volta prima del ciclo.
Ora lo sto lentamente riscrivendo per 5. Voglio dire che il prezzo può cambiare molto rapidamente e il livello può essere inferiore al valore dello stop-loss, il che porterà ad un errore. Voglio dire che il prezzo può cambiare molto rapidamente e il livello sarà inferiore al livello di stop consentito, il che porterà ad un errore.
Ho capito che questo cappello"SymbolInfoTick" è necessario per ottenere i prezzi reali?
SELL_Lvl è il numero di ginocchia (ordini) della griglia di vendita eSELL_NoLossLevel è il livello totale (prezzo) della CU di questi ordini. Bene, l'idea è la seguente: abbiamo bisogno di una linea disegnata a livello di una linea di acquisto e ridisegnata rispettivamente quando vengono aperte nuove linee. Non so come fare.
Non capite come determinare la linea BU di tutti gli ordini?
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Direi che dipende dalla dimensione di OrdersTotal() e dalla probabilità di cambiamenti di prezzo durante il ciclo.
Secondo me, ottenere dati freschi direttamente nel ciclo è più corretto.
E penso che le variabili aggiuntive (evidenziate nel codice) siano assolutamente inutili.
C'è un esempio nella documentazione.
Probabilmente sarebbe meglio passare attraverso gli ordini nel ciclo e, a condizione che l'ordine successivo sia inferiore al precedente, selezionarlo per lavorare ulteriormente con esso. Così, quando usciamo dal ciclo, l'ordine da cancellare è già selezionato.
Oppure, puoi prima salvare la sua posizione nella lista degli ordini nel ciclo e poi selezionarlo dopo essere uscito dal ciclo usando l'indice salvato nel ciclo.
La prima opzione è più corretta. La seconda dovrebbe scrivereSymbolInfoTick(symb,Last_Tick); <<<<
Sì, l'ho appena copiato e non l'ho notato.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. È usato in trailing stop, può tirare una griglia fino al 50pc.
Sì, l'ho appena copiato e non l'ho notato.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. Usato in trailing stop, può tirare una griglia fino al 50pc.
Non riesci a capire come determinare la linea BU di tutti gli ordini?
Per il trailing stop è ovviamente meglio una volta prima del ciclo.
Ora lo sto lentamente riscrivendo per 5. Voglio dire che il prezzo può cambiare molto rapidamente e il livello può essere inferiore al valore dello stop-loss, il che porterà ad un errore. Voglio dire che il prezzo può cambiare molto rapidamente e il livello sarà inferiore al livello di stop consentito, il che porterà ad un errore.
Ho capito che questo cappello"SymbolInfoTick" è necessario per ottenere i prezzi reali?