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
Guardate
double NormalizeDouble( double value, int digits)
Se metti digits=2, puoi vedere quello che vuoi.Ciao,
Penso di non essere stato molto chiaro. Per esempio:
- Se il prezzo corrente è 1,3756, il codice dovrebbe restituire 56
- Se il prezzo corrente è 99.22, il codice dovrebbe restituire 22
- Se il prezzo corrente è 1,4499, il codice dovrebbe restituire 99
Fondamentalmente, sto cercando di restituire il valore delle ultime due cifre, indipendentemente dal fatto che la quotazione sia 4 decimali o 2 decimali.
NomalizeDouble arrotonda solo il prezzo al posizionamento delle cifre specificato.
Qualcuno ha qualche idea?
Ciao,
Credo di non essere stato molto chiaro. Per esempio:
- Se il prezzo corrente è 1,3756, il codice dovrebbe restituire 56
- Se il prezzo corrente è 99,22, il codice dovrebbe restituire 22
- Se il prezzo corrente è 1,4499, il codice dovrebbe restituire 99
Fondamentalmente, sto cercando di restituire il valore delle ultime due cifre, indipendentemente dal fatto che la quotazione sia 4 decimali o 2 decimali.
NomalizeDouble arrotonda solo il prezzo al posizionamento delle cifre specificato.
Qualcuno ha qualche idea?ОК
double lasttwonumbers=(Bid-MathFloor(Bid/(Point*100))*Point*100)/Point;
Come posso creare un EA che chiuderà qualsiasi ordine di ticket aperto da più EA se lo SL è di 10 pip o superiore?
Dave
<<<Myfxidea è un servizio di charting con pattern a candela e fornisce un expert advisor per mt4
ОК double lasttwonumbers=(Bid-MathFloor(Bid/(Point*100))*Point*100)/Point;
Funziona come un incanto. Grazie per tutto il vostro aiuto
Aiuto con Trailling Stop / 1 Rischio o Posizione M
Ciao a tutti,
Ho provato a cercare nel forum una soluzione per il mio problema:
All'inizio del mio EA:
if(Ask > mybuyconditions)
{
ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);
}
//---- sell conditions
if(Bid < mysellconditions)
{
ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);
}
//----[/CODE]
Stopploss: its easy 10 bars hi/lo
Takeprofit: here i write my formula for my Trailingstop, and that is:
Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!
SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!
And know the 2te Question:
Position Management:
so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.
.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.
HERE MY EXAMPLES:
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)
if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))
{
OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);
return;
}
if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)
{
ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);
return;
}
}
{
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)
{
if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))
{
OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);
return;
}
if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)
{
ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);
return;
}
}
{
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)
{
if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))
{
OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);
return;
}
}
}
}[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)
{
{
OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);
return;
}
if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)
{
ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);
return;
}
}
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)
{
if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)
{
ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);
return;
}
}
}
{
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)
{
if(CalculateCurrentOrders(Symbol()) == 0)
{
OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;
}
}
}
if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)
{
OrderClose(i,OrderLots(),Ask,Spread,Red); return;
}Spero che qualcuno possa aiutarmi con questo problema!!!!! Grazie a tutti.
Aggiunta di codice Quando la posizione va contro di voi "x" pips aggiungete un lotto aggiuntivo con fixedtpsl
ciao
ho fatto molti studi e ho scoperto che potrebbe essere utile aggiungere questa funzione al mio EA
Quando la posizione va contro di voi "20" pips aggiungete un lotto addizionale "0.1" con il proprio input TP e SL
è possibile realizzarlo?
Anche questo EA è molto buono ma apre solo BUYS
forse aggiungere una logica di "vendita".
per favore aiutatemi
Ho bisogno di aiuto per un problema di programmazione
Come si può programmare Metatrader 4 per uscire dalla posizione precedente e aprire la nuova posizione sulla stessa barra se si imposta EachTickMode su false? Quando si imposta EachTickMode su True lo fa automaticamente, ma quando lo si imposta su false chiuderà la posizione precedente su una barra e poi aspetterà la barra successiva per aprire la nuova posizione. Io uso il
H4 e aspettare altre 4 ore per aprire una nuova posizione dopo che il segnale è stato dato è inaccettabile. Il mio sistema è troppo sensibile per usare EachTickMode=True. Qualsiasi aiuto che qualcuno possa darmi con questo sarebbe molto apprezzato.
Aiuto necessario per superare l'errore Ordersend 130
Di seguito è riportata la mia funzione di acquisto. Se imposto la variabile order_type a 1 (per ordine a mercato), funziona, quindi so che le mie funzioni stoploss e takeprofit funzionano. Il problema deve essere nella determinazione del prezzo per l'ordine op_buylimit. Sto cercando di calcolare il prezzo del mio ordine diminuendo Ask di una percentuale della lunghezza (pct_of_length) del corpo della candela (alla barra 1). Ho provato una serie di varianti di codifica (alcune includono NormalizeDouble), ma non riesco ad andare oltre l'errore 130. Qualcuno può aiutarmi? A proposito, sto usando IBFX.
Grazie in anticipo!
bool place_buy_order() {
int ticket, lunghezza_in_pips, offset_in_pips;
doppio buy_limit_price;
// pct_of_length è un intero esterno, attualmente impostato a 10
if ( order_type == 2 && pct_of_length > 0 )
{
length_in_pips = MathAbs(High[1]-Low[1]) * MathPow(10,Digits);
offset_in_pips = MathRound(lunghezza_in_pips * (pct_of_length/100));
buy_limit_price = Ask - offset_in_pips * Point;
ticket = OrderSend(Symbol(),OP_BUYLIMIT,LotSize(),buy_limit_price,0,stoploss("b",buy_limit_price),takeprofit("b",buy_limit_price),"",MAGICMA,0,Blue);
}
else
// ordine a mercato
ticket = OrderSend(Symbol(),OP_BUY,LotSize(),Ask,Slippage,stoploss("b",Ask),takeprofit("b",Ask),"",MAGICMA,0,Blu);
if ( ticket == -1 ) return(false); else return(true);
}
Hai provato a stampare le varie variabili, TP, SL ecc, e vedere se sono impostate correttamente? Questo potrebbe darti un indizio su dove si trova il problema.
Lux
Come puoi programmare Metatrader 4 per uscire dalla posizione precedente e aprire la nuova posizione sulla stessa barra se imposti EachTickMode a false? Quando imposti EachTickMode a True lo fa automaticamente, ma quando lo imposti a false chiuderà la posizione precedente su una barra e poi aspetterà la barra successiva per aprire la nuova posizione. Io uso il timeframe H4 e aspettare altre 4 ore per aprire una nuova posizione dopo che il segnale è stato dato è inaccettabile. Il mio sistema è troppo sensibile per usare EachTickMode=True. Qualsiasi aiuto che qualcuno possa darmi con questo sarebbe molto apprezzato.
EachTickMode è una variabile che il codificatore originale dell'EA ha incluso SPECIFICAMENTE in modo da poter scegliere se aprire sulla stessa candela o aprire sulla successiva.
Sembra che l'EA stia facendo ESATTAMENTE ciò per cui è stato progettato, quindi non sono sicuro di quale sia il tuo problema.
Dici che funziona come vuoi quando imposti la variabile a true, quindi qual è il problema? Basta impostare la variabile su true.
Lux