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
Sì, voglio fare 3 passi
Esempio:
Raggiungere 15 e tornare indietro di 10
Raggiungere 30 e tornare indietro di 15
Raggiungere 45 e tornare indietro di 15
Oppure chiudere allo stop loss.
Faccio una foto e cerco di spiegarmi meglio.
Questo è qualcosa di nuovo per me.
Quindi, la chiusura del trade perdente deve sempre aspettare che rimbalzi, giusto?
E se non rimbalza?
Chiuderemo allo SL iniziale?Grazie per ora, l'ho già fatto, ora sto cercando di ottimizzare per ottenere buoni risultati con questa protezione delle perdite.
Sto cercando di trovare informazioni su come tracciare una linea, proprio come l'indicatore RSI per esempio... Ho due numeri che voglio tracciare come linee sullo stesso indicatore
So che coinvolgerà un array di qualche tipo, ma non sto avendo fortuna nel capire quale gruppo di codice farà accadere questo.
indicatore buffer
Sto cercando di trovare informazioni su come tracciare una linea, proprio come l'indicatore RSI per esempio... Ho due numeri che voglio tracciare come linee sullo stesso indicatore, so che si tratta di un array di qualche tipo, ma non ho fortuna nel capire quale gruppo di codice lo farà accadere.
Si prega di leggere questo articolo
Il linguaggio MQL4 per i neofiti. Indicatori personalizzati (parte 1) - Articoli MQL4
Ciao gente,
Non so se qualcuno conosce Forex Made-EZ di George Smith.
Attualmente sto rivedendo il suo lavoro e mi chiedevo se qualcuno ha codificato un indicatore per l'oscillatore Oscar che usa?
La formula è
lascia A = il massimo più alto delle ultime otto barre (inclusa questa)
lascia B = il minimo più basso delle ultime otto barre (inclusa questa)
lasciamo C = prezzo di chiusura delle barre attuali
lasciamo X = la figura precedente dell'oscillatore (Oscar)
L'oscillatore "grezzo" di oggi è uguale a (C-B) diviso per (A-B) per 100.
Poi "smussiamo" il nostro numero grezzo (chiamiamolo Y) in questo modo:
Numero finale dell'oscillatore = ((X diviso per 3) per 2), più (Y diviso per 3).
Se qualcuno ha codificato questo o può codificare questo sarebbe molto apprezzato.
Saluti SteveHo provato a codificare questo da solo. Qualcuno potrebbe commentare se questo fa quello che penso faccia. I valori non sembrano corrispondere a quelli che fanno se calcolo manualmente le cifre. Inoltre, parte solo dal momento in cui l'indicatore viene posizionato. Mi piacerebbe che mostrasse anche i valori storici.
#proprietà indicator_separate_window
#proprietà indicator_buffers 1
#proprietà indicator_color1 Red
//---- buffer
doppio ExtMapBuffer1[]
//+------------------------------------------------------------------+
//|funzione di inizializzazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int init()
{
//---- indicatori
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
stringa short_name = "Indicatore Oscar";
IndicatorShortName(short_name);
//----
return(1);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'indicatore Custor
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Funzione di iterazione dell'indicatore personalizzata |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- controllare eventuali errori
if (counted_bars<0) return(-1);
//---- l'ultima barra contata sarà ricontata
se (counted_bars>0) counted_bars--;
int pos=Bars-counted_bars;
//---- ciclo di calcolo principale
doppio x;
x=50;
mentre(pos>=0)
{
double a, b, c, y, osc;
//mettiamo A = il massimo storico delle ultime otto barre (inclusa questa)
a=Alto;
//lascia B = il minimo più basso delle ultime otto barre (inclusa questa)
b=Basso;
//let C = prezzo di chiusura della barra attuale
c = Close[pos];
//let X = la cifra precedente dell'oscillatore (Oscar)
//L'oscillatore "grezzo" di oggi è uguale a (C-B) diviso per (A-B) per 100.
y=((c-b)/(a-b))*100;
//Successivamente "smussiamo" il nostro numero grezzo (chiamiamolo Y) in questo modo:
//Numero finale dell'oscillatore = ((X diviso per 3) per 2), più (Y diviso per 3).
osc=((x/3)*2)+(y/3);
ExtMapBuffer1[pos]= osc ;
pos--;
}
return(0);
}
Qualsiasi aiuto ricevuto con gratitudine.
Grazie Steve
Chiedi... Modo_trade
Ciao, qualcuno può dare un esempio per l'uso di MODE_TRADES?
Grazie.
Per smb1970 - è questo:
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_maximum 100
#property indicator_minimum 0
//
//
//
//
//
extern int OscPeriod = 8;
extern int OscPrice = PRICE_CLOSE;
double oscBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
int init()
{
SetIndexBuffer(0,oscBuffer);
IndicatorShortName("Osc ("+OscPeriod+")");
return(0);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//
//
//
//
//
for(i=limit; i>=0; i--)
{
double price = iMA(NULL,0,1,0,MODE_SMA,OscPrice,i);
double high = High[ArrayMaximum(High,OscPeriod,i)];
double low = Low[ArrayMinimum(Low,OscPeriod,i)];
//
//
//
//
//
if (high!=low)
double raw = 100.00*(price-low)/(high-low);
else raw = 0.00;
oscBuffer= oscBuffer*2.0/3.0 + raw/3.0;
}
return(0);
}Ma guardate anche l'immagine: in alto è "Oscar" in basso è la Ema(5) dello stocastico(8), o per semplificare ancora di più, in basso è Stocastico(8,5,1) con la linea di segnale impostata su esponenziale. Quindi "Oscar" è semplicemente una linea di segnale dello stocastico
Grazie!
Grazie mladen, non solo è molto utile, è anche molto rivelatore!
NewB in bisogno di aiuto con la codifica :-(
Ciao a tutti,
Ho bisogno di un po' di aiuto disparato qui . Ho del codice che cercherà un accordo tra diversi indicatori. Una volta che sono tutti d'accordo voglio un modo per far entrare i trade nel modo in cui l'ho descritto nelle immagini del grafico. Finora posso inserire il primo trade "Buy", ma non inserisce solo 1 trade ...., ma fino a 8 trade. E poi, se il mercato mi va contro, inserisco un "contingency trade" dove compro/vendo di nuovo nonostante mi vada contro. Apprezzerei molto se qualcuno potesse mostrarmi come dovrebbe essere il codice corretto
Non sono sicuro che queste immagini verranno mostrate, ma nel caso le ho anche come allegati.
Ecco il mio codice imperfetto che dovrebbe eseguire il trade...
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1...questo lo ferma dopo che 1 ordine è stato piazzato...ma non funziona ancora
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Stampa("Il mio biglietto è: " , biglietto);
{
buy1 = OrderOpenPrice(); //prendendo il prezzo del 1° ordine e spingendolo in questa variabile
// Comment("il prezzo aperto dell'ordine #1 è ", OrderOpenPrice() + " " + buy1 + " meno di " + (buy1-0.0030));
se (buy1 >= (buy1-0.0030))
{
//se ( OrdersTotal() <= buy_trade1 ) //questo lo ferma dopo che 1 ordine è stato piazzato.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
//execute_trade=0;
}
} else
Print("OrderSelect ha restituito l'errore di ",GetLastError());
}
NewB in bisogno di aiuto con la codifica
Ciao a tutti,
Ho bisogno di un po' di aiuto disparato qui. Ho del codice che cercherà un accordo tra diversi indicatori. Una volta che sono tutti d'accordo voglio un modo per far entrare i trade nel modo in cui l'ho descritto nelle immagini del grafico. Finora posso inserire il primo trade "Buy", ma non inserisce solo 1 trade ...., ma fino a 8 trade. E poi, se il mercato mi va contro, inserisco un "contingency trade" dove compro/vendo di nuovo nonostante mi vada contro.Apprezzerei molto se qualcuno potesse mostrarmi come dovrebbe essere il codice corretto
Non sono sicuro che queste immagini mostreranno, ma nel caso le ho anche come allegati.
Pic 1
Pic 2
Ecco il mio codice imperfetto che dovrebbe eseguire il trade...
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1...questo lo ferma dopo che 1 ordine è stato piazzato...ma non funziona ancora
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Stampa("Il mio biglietto è: " , biglietto);
{
buy1 = OrderOpenPrice(); //prende il prezzo del 1° ordine e lo spinge in questa variabile
// Comment("il prezzo aperto dell'ordine #1 è ", OrderOpenPrice() + " " + buy1 + " meno di " + (buy1-0.0030));
se (buy1 >= (buy1-0.0030))
{
//se ( OrdersTotal() <= buy_trade1 ) //questo lo ferma dopo che 1 ordine è stato piazzato.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
//execute_trade=0;
}
}
else
Print("OrderSelect ha restituito l'errore di ",GetLastError());
}