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
Puoi aggiungerlo per disegnare quelle linee aggiuntive ancora una volta - così:
Ancora grazie mladen
Bisogno di aiuto nella programmazione di un allarme
Ciao, sono nuovo di tutta la programmazione di mql4.
Voglio creare un nuovo allarme "tutto in uno".
Ho Fx MNT, Super Signal e CHT Value Chart con segnali di allarme.
Ora voglio avere un solo allarme, quando MNT, Super Signal, Value Chart e RSI sono al posto giusto.
Come codificare questo? Posso usare le parti di allarme dell'esistente e metterle tutte in un unico grande codice?
Cordiali saluti Slow
Ciao, sono nuovo di tutta la programmazione di mql4.
Voglio creare un nuovo allarme "tutto in uno".
Ho Fx MNT, Super Signal e CHT Value Chart con segnali di allarme.
Ora voglio avere un solo allarme, quando MNT, Super Signal, Value Chart e RSI sono al posto giusto.
Come codificare questo? Posso usare le parti di allarme esistenti e metterle tutte in un unico grande codice?
Cordiali saluti SlowLento
Puoi farlo, ma il codice che sarebbe "responsabile" del recupero dei dati da tutti quegli indicatori non sarebbe semplice (specialmente la parte con i parametri dove dovresti dichiarare parametri esterni a tutti gli indicatori che verrebbero chiamati per sapere se l'allarme deve essere attivato o meno)
chiusure consecutive superiori/inferiore
Il file allegato ha una serie di condizioni che possono essere incluse selezionando vero/falso.
Vorrei incorporare un'altra condizione come vero/falso: ci sono
2 chiusure superiori consecutive per i long?
Se ci sono, allora se le altre condizioni abilitate da true sono presenti, allora viene prodotta una freccia verso l'alto.
Ci sono 2 chiusure consecutive inferiori per gli short?
Se ci sono, allora se le altre condizioni abilitate da true sono presenti, allora viene prodotta una freccia verso il basso.
Il numero di chiusure potrebbe essere una variabile?
Qualcuno potrebbe codificare questa condizione extra nell'indicatore Stoch_Indy? Grazie.
Il file allegato ha una serie di condizioni che possono essere incluse selezionando vero/falso.
Vorrei incorporare un'altra condizione come vero/falso: ci sono
2 chiusure superiori consecutive per i long?
Se ci sono, allora se le altre condizioni abilitate da true sono presenti, allora viene prodotta una freccia verso l'alto.
Ci sono 2 chiusure consecutive inferiori per gli short?
Se ci sono, allora se le altre condizioni abilitate da true sono presenti, allora viene prodotta una freccia verso il basso.
Il numero di chiusure potrebbe essere una variabile?
Qualcuno potrebbe codificare questa condizione extra nell'indicatore Stoch_Indy? Grazie.
persona77
Prova questo
Opzione UseConsecutiveCloseBars aggiunta per questo scopo. Non viene testato solo un close ids, ma un close deve essere maggiore dell'open su tali barre per renderlo consecutivo up, o deve essere inferiore all'open su tali barre per renderlo consecutivo down
persona77
Prova questo
Opzione UseConsecutiveCloseBars aggiunta a questo scopo. Non solo una chiusura viene testata, ma una chiusura deve essere maggiore dell'apertura su tali barre per renderla consecutiva al rialzo, o deve essere inferiore all'apertura su tali barre per renderla consecutiva al ribassoMolto bello mladen - funziona molto bene. Grazie!
Nei pochi casi in cui mi sono imbattuto, avere C = O permesso è per lo più favorevole.
Potresti cambiarlo per permettere questo, o, meglio ancora, avere un'opzione che permetta o meno C = O?
Molto bello mladen - funziona molto bene. Grazie!
Nei pochi casi in cui mi sono imbattuto, avere C = O consentito è per lo più favorevole.
Potresti cambiarlo per permettere questo, o, meglio ancora, avere un'opzione che permetta o meno C = O?persona77
Aggiunta un'altra opzione: AllowCloseEqualOpen. in modo da poterlo controllare con questa opzione ora
Ciao ragazzi,
Ho una domanda sulla codifica
E' possibile disegnare la media mobile sul grafico generale con queste preferenze?
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFattore = 10000.0;
Ciao ragazzi,
Ho una domanda sulla codifica
E' possibile disegnare la media mobile sul grafico generale con queste preferenze?
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;Quello che hai scritto (il dFactor e mFactor) si valuta tutto ad un valore costante indipendentemente dal prezzo e dal numero di barre, quindi avresti una linea orizzontale sul grafico
Quello che hai scritto (il dFactor e mFactor) si valuta tutto ad un valore costante indipendentemente dal prezzo e dal numero di barra, quindi avresti una linea orizzontale sul grafico
Grazie per la risposta!
Ma come posso ottenere una linea angolare di MA sul grafico generale come in questo codice indi istogramma?
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 FireBrick
#property indicator_color3 Yellow
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
//---- indicator parameters
extern int TimeFrame = 60;
extern int MAMode = 0;
extern int MAPeriod = 50;
extern int Price = 4;
extern double AngleTreshold = 0.25;
extern int StartMAShift = 2;
extern int EndMAShift = 0;
extern int MaxBars = 500;
string TF1;
//---- indicator buffers
double UpBuffer[];
double DownBuffer[];
double ZeroBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,UpBuffer) &&
!SetIndexBuffer(1,DownBuffer) &&
!SetIndexBuffer(2,ZeroBuffer))
Print("cannot set indicator buffers!");
SetIndexLabel(0,"");
SetIndexLabel(1,"");
SetIndexLabel(2,"");
switch(TimeFrame)
{
case 1: TF1="M1"; break;
case 5: TF1="M5"; break;
case 15: TF1="M15"; break;
case 30: TF1="M30"; break;
case 60: TF1="H1"; break;
case 240: TF1="H4"; break;
case 1440: TF1="D1"; break;
case 10080: TF1="W1"; break;
case 43200: TF1="MN1"; break;
default: {TimeFrame = Period(); init(); return(0);}
}
IndicatorShortName("MAAngle MTF * "+TF1+" *");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| The angle for EMA |
//+------------------------------------------------------------------+
int start()
{
double fEndMA, fStartMA;
double fAngle, mFactor, dFactor;
int nLimit, i;
int nCountedBars;
double angle;
int ShiftDif;
string Sym;
if (MAMode >= 4) MAMode = 0;
if(EndMAShift >= StartMAShift)
{
Print("Error: EndMAShift >= StartMAShift");
StartMAShift = 6;
EndMAShift = 0;
}
nCountedBars = IndicatorCounted();
dFactor = 2*3.14159/180.0;
mFactor = 10000.0;
Sym = StringSubstr(Symbol(),3,3);
if (Sym == "JPY") mFactor = 100.0;
ShiftDif = StartMAShift-EndMAShift;
mFactor /= ShiftDif;
//---- check for possible errors
if(nCountedBars<0) return(-1);
//---- last counted bar will be recounted
if(nCountedBars>0) nCountedBars--;
nLimit=Bars-nCountedBars;
nLimit=MathMax(nLimit,TimeFrame/Period());
nLimit=MathMin(nLimit,MaxBars );
//---- main loop
for(i=0; i<nLimit; i++)
{
int y = iBarShift(NULL,TimeFrame,Time);
if (TimeFrame<Period()) TimeFrame=Period();
fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);
fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);
// 10000.0 : Multiply by 10000 so that the fAngle is not too small
// for the indicator Window.
fAngle = mFactor * (fEndMA - fStartMA)/2.0;
//fAngle = MathArctan(fAngle)/dFactor;
DownBuffer = 0.0;
UpBuffer = 0.0;
ZeroBuffer = 0.0;
if(fAngle > AngleTreshold)
UpBuffer = fAngle;
else if (fAngle < -AngleTreshold)
DownBuffer = fAngle;
else ZeroBuffer = fAngle;
}
return(0);
}
//+------------------------------------------------------------------+