[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 292
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Salve.
Per favore, aiutatemi a capire cosa sto sbagliando.
Condizionalmente: Ask = 1,3000
PriceAsk = 1,3055 (incl. dove Step=50 e Srpead=3)
bool BuyOrder=1 ,
if (Ask-PriceAsk+Step-Spread<=0 && BuyOrder==0) perché questa condizione è vera?Immediatamente prima dell'istruzione if, stampa i valori di tutte le variabili nella condizione
Immediatamente prima dell'istruzione if, registra i valori di tutte le variabili nella condizione
Controlla, grazie)
E ora la conclusione
Voglio capire come funziona. Ecco perché ho chiesto.
GaryKa:
Immediatamente prima dell'istruzione if, registra i valori di tutte le variabili nella condizione
ed3sss:
Controlla, grazie)
Grazie, ho trovato un errore logico nel programma, ora tutto funziona.
Salve.
Come posso visualizzare sul grafico l'iscrizione sullo strumento corrente Profitto/perdita degli ordini aperti.
È difficile controllare nell'Expert Advisor se ha aperto posizioni o no (terminale on/off) e prendere il volume dell'ultimo lotto prima di chiudere il terminale.
Grazie.
Mi sono appena imbattuto in una funzione qui:
Voglio capire come funziona. Ecco perché ho chiesto.Se mi sbaglio, mi scuso. MathLog(x) è ln(x) (logaritmo naturale). La formula di conversione è log_a(b)=ln(b)/ln(a), in questo caso si ottiene ln(x)/ln(10)=lg(x)(logaritmo decimale). La parte intera del logaritmo decimale lg(1...9) è 0, lg(10...99) è 1, lg(100...999) è 2, lg(1000...9999) è 3 e così via, cioè il logaritmo di un numero maggiore di uno è uguale al numero di cifre di quel numero(prima del punto decimale, dopo non conta) meno uno. Se x è da 0 a uno, allora la parte intera di lg(0,1...0,9) è uguale a -1, lg(0,01...0,09) è uguale a -2, lg(0,001...0,009) è uguale a -3 e così via, cioè, se non si guarda il meno, il logaritmo decimale del numero da 0 a uno è uguale al numero totale di zeri prima della prima cifra significativa. Non so come funziona MathCeil, ma se restituisce la parte intera di un numero, questa funzione dovrebbe restituire il numero di cifre nel numero prima del punto decimale meno uno se il numero è maggiore di 1, e il numero di zeri nel numero prima della prima cifra significativa se il numero è da 0 a uno. Il minimo di questa funzione è nell'intervallo x uguale a 1...9. Da qui, per 10...99 e 0,1...0,9 la funzione è uguale a 1, per 100...999 e 0,01...0,09 è uguale a 2, e così via. L'idea è...
Buon pomeriggio, c'è un bug nel programma, mi sono già scervellato, per favore punta il dito su ciò che non va. Voglio solo sapere perché la condizione per il modifi non funziona. Anche se la condizione non è vera, è comunque soddisfatta e, quindi, quando si modificano gli errori o 1, o 130. Grazie a tutti.
//--------------- modificare gli ordini sotto TP-------------------
per (i = OrdiniTotali() - 1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continua;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
se (OrderType() == OP_BUY) {
se (OrderTakeProfit() == 0 || OrderTakeProfit() > OprTPB(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPB(TP),0,CLR_NONE);
}
}
se ((OrderType() == OP_SELL)) {
if(OrderTakeProfit() == 0 || OrderTakeProfit() < OprTPS(TP)){
RefreshRates();
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPS(TP),0,CLR_NONE);
}
}
}
}
ritorno(0);
}
doppio LastOpPrBuy(double va=0)
{
per (i = OrdiniTotali() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continua;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
if (OrderType() == OP_BUY && OrderOpenPrice()<va) va = OrderOpenPrice()
}
ritorno (va);
}
//----------------------------------------------------------------------------------
double LastOpPrSell(double va=0)
{
per (i = OrdiniTotali() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (va == 0) va = OrderOpenPrice();
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continua;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
se (OrderType() == OP_SELL && OrderOpenPrice()>va) va = OrderOpenPrice()
}
ritorno (va);
}
//----------------------------------------------------------------------------------
doppio OprTPB(int TP)
{
int j=0;
doppio TPB=0;
per (i = OrdiniTotali() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continua;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
se (OrderType() == OP_BUY)
{
TPB+=OrderOpenPrice();
j++;
}
}
se (j==0) {
j++;
TPB = Chiedi;
}
TPB=(TPB/j)+TP*Point;
ritorno (TPB);
}
//----------------------------------------------------------------------------------
doppio OprTPS(int TP)
{
int j=0;
doppio TPS=0;
per (i = OrdiniTotali() - 1; i>= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
se (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continua;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
se (OrderType() == OP_SELL)
{
TPS+=OrderOpenPrice();
j++;
}
}
se (j==0) {
j++;
TPS = Offerta;
}
TPS=(TPS/j)-TP*Point;
ritorno (TPS);
}
//----------------------------
Siamo tutti neofiti qui! Non vedi che non sappiamo cose semplici! Dove altro potremmo scoprirlo! Almeno noi vogliamo saperlo, non come pensano alcune persone che chiedono solo di inserire il codice e subito pompano i soldi!
))) Dall'umorismo di un commerciante:
- Dove posso trovare un Expert Advisor redditizio?
- Guarda da qualche parte sopra nel thread, hanno postato un robot chiamato @MOZG@v4.12.