Errori, bug, domande - pagina 1418

 
Ciao a tutti!
Ho iniziato da poco a programmare e ho riscontrato un problema simile, lo StopLoss non è impostato. Potete consigliarmi dove si trova l'errore?
int start()
{
se(CountTrades()==0)
{
double ima=iMA(Symbol(),PERIOD_H1,14,0,MODE_SMA,PRICE_CLOSE,1);
se(Ask>ima)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Blue);
se(biglietto>0)
{
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0)
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
else if(Bid<ima)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red);
se(biglietto>0)
{
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
else
{
int order_type=FindLastOrderType();
se(tipo_ordine==OP_BUY)
{
price=FindLastPrice(OP_BUY);
if(Ask<=price-Step*Point)
{
lastlot = FindLastLots(OP_BUY);
lastlot = NormalizeDouble(lastlot * Multiplier, 2);
ticket=OrderSend(Symbol(),OP_BUY,lastlot,Ask,Slippage,0,0,",Magic,0,Blue);
se(biglietto>0)
ModificaOrdini(OP_BUY);
}
}
else if(order_type==OP_SELL)
{
price=FindLastPrice(OP_SELL);
se(Bid<=prezzo+passo*punto)
{
lastlot=FindLastLots(OP_SELL);
}
lastlot=NormalizeDouble(lastlot*Multiplier,2);
ticket=OrderSend(Symbol(),OP_SELL,lastlot,Bid,Slippage,0,0,",Magic,0,Red);
se(biglietto>0)
ModificaOrdini(OP_SELL);
}
}
}
ritorno(0);
}
Grazie in anticipo)))
 
Сергей Верещак:
se(Ask>ima)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Blue);
se(biglietto>0)
{
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0); imposta Take Profit e Stop Loss con 0
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0); impostare Stop Loss e Take Profit a zero, cioè cancellare quello impostato in precedenza
}
}
}

Grazie in anticipo)))
Dig in, punta dato ...
 
Vladimir Pastushak:
Scava, ti ho dato un suggerimento ...
Grazie Volodya. Scaverò, lo scoprirò prima)))
 
Vladimir Pastushak:
Scava, ti ho dato un suggerimento ...

Allora portiamolo allo standard del "nuovo" MQL4 e MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
 
Alexey Volchanskiy:

Allora portiamolo allo standard del "nuovo" MQL4 e MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);

Il15 maggio di quest'anno c'è un post di Renat Fatkhullin con il seguente testo:

I trattini per mostrare il loro stato deprecato. Non si possono usare queste semplici variabili dichiarate globalmente, ma sembrano normali variabili locali.

Per mantenere il linguaggio e il codice pulito, dovremmo passare a Symbol(), Period(). È solo la premura e il liberarsi dell'eredità di quello vecchio.

Se necessario, potete cercare il post con il punto citato. Questa è stata la risposta di Renat a una delle domande di uno dei membri della Comunità, che iniziava così:

In MT4 le variabili Point, Digits... In MT5 queste stesse variabili iniziano con un underscore...


P./S.: Di conseguenza, basandosi sul fatto che gli underscore sono deprecati (deprecati o disapprovati o non raccomandati per l'uso in futuro), allora l'uso di Point() e Digits() senza underscore. /* In MQL4 tale uso di Point() e Digits() con le parentesi dopo i loro nomi, come in MQL5, non produce errori al funzionamento e nessun errore o avvertimento alla compilazione.

 

Ciao, ho una domanda molto interessante, ho 3 piattaforme MT4 sul mio computer, ¹1 è quella principale, dove ho aperto un conto reale. No. 2 e 3 - ausiliario, per testare EAs, ci sono aperti conti demo. Quando cerco di copiare un segnale da https://www.mql5.com (seleziono un segnale, premo start copying, poi appare una finestra che dice di lanciare MetaTrader4 e sottoscrivere una piattaforma, premo questa finestra) si apre la piattaforma numero 3 invece della piattaforma numero 1. Come posso correggerlo? Come far aprire la piattaforma numero 1?

 
Mihail Kuzmin:

Ciao, ho una domanda molto interessante, ho 3 piattaforme MT4 sul mio computer, ¹1 è quella principale, dove ho aperto un conto reale. No. 2 e 3 - ausiliario, per testare EAs, ci sono aperti conti demo. Quando cerco di copiare un segnale da https://www.mql5.com (seleziono un segnale, premo start copying, poi appare una finestra che dice di lanciare MetaTrader4 e sottoscrivere una piattaforma) si apre la piattaforma numero 3 invece della piattaforma numero 1. Come posso correggerlo? Come posso aprire la piattaforma numero 1?

Se avete uno "zoo" di diversi terminali, dovete cercare il segnale direttamente dal terminale che volete copiare.
 
Karputov Vladimir:
Se avete uno "zoo" di diversi terminali, dovete cercare il segnale direttamente dal terminale in cui volete copiare.
Il terminale non funziona, ma dà un errore...
 
Mihail Kuzmin:
Il terminale non funziona e dà un errore...
Che tipo di errore? Cosa fate, in che ordine?
 
Karputov Vladimir:
Che tipo di errore? Cosa state facendo, in che ordine?

Sto usando il sito da un mese, mi sono iscritto attraverso il sito, e questa volta, per qualche motivo si apre una piattaforma completamente diversa.

Avevo appena firmato per un segnale un mese fa attraverso il sito web, e ha aperto la piattaforma di cui avevo bisogno n. 1.

Motivazione: