Chi può aiutare con il robot, perché non funziona?

 

Ciao a tutti, chi può aiutare con il robot, perché non funziona?

extern double lots = 0.01;
extern double TPforSymbol = 0;
extern double SLforSymbol = 0;

int last_bar= 0;

int start(){
if (last_bar == Bars) return(0);
last_bar = Bars;
if(OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask+ SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red);
}
return(0);
}

 
Indica un errore di OrderSend(Symbol()
 
GIM:
Mostra l'errore OrderSend(Symbol()

1. Cercare il codice di errore nel registro.

2. extern double TPforSymbol = 0;

extern double SLforSymbol = 0;

variabili uguali a zero.

 
Il fatto che le variabili siano zero è un vincolo di profitto e perdita, non credo che importi qui....
 
GIM:
Il fatto che le variabili siano zero è un vincolo di profitto e perdita, non credo che abbia importanza qui....
L'errore deve essere 130? Non importa, guarda, stai cercando di aprire un ordine con valori TP e SL uguali a Ask e Bid
 
GIM:

Ciao a tutti, chi può aiutare con il robot, perché non funziona?

extern double lots = 0,01;
extern double TPforSymbol = 0;
extern double SLforSymbol = 0;

int ultimo_bar = 0;

int start(){
se (last_bar == Bars) return(0);
ultima_barra = Bars;
se (OrdiniTotali() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Ask + SLforSymbol * Point, Bid - TPforSymbol * Point, 0, Red);
}
ritorno(0);
}

Non è possibile per le regole del linguaggio ingoiare parametri con valori predefiniti. Se devi impostare il colore delle frecce, allora scrivi tutti i parametri a sinistra del colore. B slittamento 3 non è sufficiente, se è 5 cifre, ci sarà requotes, ho scritto 50. E SL e TP dovrebbero essere impostati su valori diversi da zero.Aleksey Vakhrushev ha già scritto su questo.

OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - SLforSymbol * Point, Ask + TPforSymbol * Point,  "", 1, 0, clr Blue);
 

giusto =)

un ordine cerca di piazzare uno stop e uno stop nello stesso posto del prezzo - il che è impossibile

- o fare come sotto se si vuole 0

o specificareTPforSymbol, SLforSymbol

OrderSend(Symbol(), OP_BUY, lots ,Ask, 50,0, 0,  "", 1, 0, clrBlue);
 
GIM:

Ciao a tutti, chi può aiutare con il robot, perché non funziona?


Avete bisogno che la funzione di apertura sia corretta o volete capire il perché degli errori?
 
Vladimir Zubov:
Volete che la funzione di apertura sia corretta o volete capire perché ci sono errori?
Volete che apra gli scambi.
 
GIM:
Dovrebbe aprire accordi.

Affrontare le variabili

extern double TPforSymbol = 0;

extern double SLforSymbol = 0;

Con questo valore di variabili otterrete un errore.

Alexey Volchanskiy ha scritto che non si specificano tutti i parametri per la funzione OrderSend().

 
extern double lots = 0.01;
extern double TPforSymbol = 100;
extern double SLforSymbol = 1000;
extern int stop_loss = 76;
extern int take_profit = 750;

intlast_bar = 0;

int start(){
if (last_bar == Bars) return(0);
last_bar = Bars;
if(OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - stop_loss * Point, Ask + take_profit * Point, "", 1, 0, clrBlue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 50, Ask+ stop_loss * Point, Bid - take_profit * Point, "", 1, 0, clrRed);
}
return(0);

}


L'ho aggiustato in questo modo, ma è ancora sbagliato.....