In mql4 ho usato iCustom per fare indicatori che usano gli indicatori già pronti di qualcun altro, anche se non so nulla di programmazione... Ne ho abbastanza di intuizioni. Sto usando mql5 ma non funziona niente, per quanto mi sforzi di capirlo. Per favore, aiutatemi, per favore.
Ho questo indicatore in ex5. L'ho messo nella mia cartella Downloads. Voglio prendere entrambe le sue linee e disegnarle sul grafico in altri periodi, cioè renderlo multitime frame con iCustom.
Dato che non posso scrivere un indicatore da zero, ho preso il codice di un semplice indicatore Bears Power. Non ho cambiato nulla lì, tranne cambiare indicator_chart_window e DRAW_LINE e la linea, che, a mio avviso, dovrebbe togliere i dati del primo buffer con i parametri di default del TF corrente:
Tutto si compila, niente viene disegnato. Di cos'altro ha bisogno? :(
#property copyright"2009, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property description"Bears Power"//--- indicator settings#property indicator_chart_window//---------------------------------#property indicator_buffers2#property indicator_plots1#property indicator_type1DRAW_LINE//---------------------------------------#property indicator_color1 Silver
#property indicator_width12//--- input parametersinputint InpBearsPeriod=13; // Period//--- indicator buffersdouble ExtBearsBuffer[];
double ExtTempBuffer[];
//--- handle of EMA int ExtEmaHandle;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+voidOnInit()
{
//--- indicator buffers mappingSetIndexBuffer(0,ExtBearsBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ExtTempBuffer,INDICATOR_CALCULATIONS);
//---IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawnPlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpBearsPeriod-1);
//--- name for DataWindow and indicator subwindow labelIndicatorSetString(INDICATOR_SHORTNAME,"Bears("+(string)InpBearsPeriod+")");
//--- get MA handle
ExtEmaHandle=iMA(NULL,0,InpBearsPeriod,0,MODE_EMA,PRICE_CLOSE);
//--- initialization done
}
//+------------------------------------------------------------------+//| Average True Range |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &Time[],
constdouble &Open[],
constdouble &High[],
constdouble &Low[],
constdouble &Close[],
constlong &TickVolume[],
constlong &Volume[],
constint &Spread[])
{
int i,limit;
//--- check for bars countif(rates_total<InpBearsPeriod)
return(0);// not enough bars for calculation //--- not all data may be calculatedint calculated=BarsCalculated(ExtEmaHandle);
if(calculated<rates_total)
{
Print("Not all data of ExtEmaHandle is calculated (",calculated,"bars ). Error",GetLastError());
return(0);
}
//--- we can copy not all dataint to_copy;
if(prev_calculated>rates_total || prev_calculated<0) to_copy=rates_total;
else
{
to_copy=rates_total-prev_calculated;
if(prev_calculated>0) to_copy++;
}
//---- get ma buffersif(IsStopped()) return(0); //Checking for stop flagif(CopyBuffer(ExtEmaHandle,0,0,to_copy,ExtTempBuffer)<=0)
{
Print("getting ExtEmaHandle is failed! Error",GetLastError());
return(0);
}
//--- first calculation or number of bars was changedif(prev_calculated<InpBearsPeriod)
limit=InpBearsPeriod;
else limit=prev_calculated-1;
//--- the main loop of calculationsfor(i=limit;i<rates_total && !IsStopped();i++)
{
ExtBearsBuffer[i]=iCustom(NULL,0,"Downloads\\RSI Analytics"); \\--------------------------------------------
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Зачем нам RSI в отдельном окне, если его можно построить в основном окне графика, что гораздо более понятно? RSI ANALYTICS - это индикатор, следящий за рынком, созданный на основе той же идеи, что и традиционный RSI (индекс относительной силы). При этом он строится не в отдельном подокне, а в том же окне, что и график цены финансового...
In mql4 ho usato iCustom per fare indicatori che usano gli indicatori già pronti di qualcun altro, anche se non so nulla di programmazione... Ne ho abbastanza di intuizioni. Sto usando mql5 ma non funziona niente, per quanto mi sforzi di capirlo. Per favore, aiutatemi, per favore.
Ho questo indicatore in ex5. L'ho messo nella mia cartella Downloads. Voglio prendere entrambe le sue linee e disegnarle sul grafico in altri periodi, cioè renderlo multitime frame con iCustom.
Dato che non posso scrivere un indicatore da zero, ho preso il codice di un semplice indicatore Bears Power. Non ho cambiato nulla lì, tranne cambiare indicator_chart_window e DRAW_LINE e la linea, che, a mio avviso, dovrebbe togliere i dati del primo buffer con i parametri di default del TF corrente:
Tutto si compila, niente viene disegnato. Di cos'altro ha bisogno? :(
In mql5 il lavoro con gli indicatori personalizzati e standard è organizzato diversamente che in mql4. Se in mql4 è possibile ottenere solo un valore di indicatore attraverso iCustom, in mql5 è possibile ottenere valori di indicatore per tutta la profondità della storia nell'array. La seconda grande differenza è la direzione dell'indicizzazione nei buffer degli indicatori.
È noioso guardare tutto il codice e controllarlo rispetto all'originale, quindi mi limiterò a segnalare i principali:
Il file deve trovarsi nella cartella Indicators o in una sottocartella situata nella stessa Indicators.
Ecco la linea per ottenere la maniglia dell'indicatore MA
E poi puoi elaborare i valori dell'indicatore da questo buffer aggiuntivo in qualche modo, o puoi metterli nel buffer dell'indicatore senza dimenticare la direzione dell'indicizzazione.
Grazie! Ho scritto qualcosa come ho capito, e ora solo un errore appare durante la compilazione. Sulla linea
erroreto_copy - identificatore non dichiarato.
In quale sezione e come lo dichiaro?
Devi confrontare i miei suggerimenti con il tuo codice e con il codice sorgente che hai già sistemato. Questa variabile è dichiarata in questi codici. E oltre alle mie osservazioni, dovreste cercare di capire la logica degli indicatori di costruzione in generale, e non solo cambiare un pezzo di merda per un pezzo di merda.
lil_lil: In MetaTrader 5, la performance di un EA su una coppia di valute può essere radicalmente diversa dalla performance, per esempio, sull'indice RTS?
Il consigliere lavorerà nel modo in cui è scritto. E non altrimenti.
Per quanto riguarda le sfumature da considerare: RTS è uno scambio, quindi il tipo di posizioni contabili NETTING. Se l'EA non è originariamente progettato per lavorare sulla rete, il risultato è imprevedibile.
Il consigliere lavorerà nel modo in cui è scritto. E non altrimenti.
Per quanto riguarda le sfumature da considerare: RTS è uno scambio, quindi il tipo di posizioni contabili NETTING. Se l'EA non è originariamente progettato per lavorare su reti, il risultato è imprevedibile.
Se il tuo EA non è destinatoa lavorare sul netting, il risultato è imprevedibile.
Non ci sono posizioni multidirezionali nella strategia.
In mql4 ho usato iCustom per fare indicatori che usano gli indicatori già pronti di qualcun altro, anche se non so nulla di programmazione... Ne ho abbastanza di intuizioni. Sto usando mql5 ma non funziona niente, per quanto mi sforzi di capirlo. Per favore, aiutatemi, per favore.
Ho questo indicatore in ex5. L'ho messo nella mia cartella Downloads. Voglio prendere entrambe le sue linee e disegnarle sul grafico in altri periodi, cioè renderlo multitime frame con iCustom.
Dato che non posso scrivere un indicatore da zero, ho preso il codice di un semplice indicatore Bears Power. Non ho cambiato nulla lì, tranne cambiare indicator_chart_window e DRAW_LINE e la linea, che, a mio avviso, dovrebbe togliere i dati del primo buffer con i parametri di default del TF corrente:
Tutto si compila, niente viene disegnato. Di cos'altro ha bisogno? :(
In mql4 ho usato iCustom per fare indicatori che usano gli indicatori già pronti di qualcun altro, anche se non so nulla di programmazione... Ne ho abbastanza di intuizioni. Sto usando mql5 ma non funziona niente, per quanto mi sforzi di capirlo. Per favore, aiutatemi, per favore.
Ho questo indicatore in ex5. L'ho messo nella mia cartella Downloads. Voglio prendere entrambe le sue linee e disegnarle sul grafico in altri periodi, cioè renderlo multitime frame con iCustom.
Dato che non posso scrivere un indicatore da zero, ho preso il codice di un semplice indicatore Bears Power. Non ho cambiato nulla lì, tranne cambiare indicator_chart_window e DRAW_LINE e la linea, che, a mio avviso, dovrebbe togliere i dati del primo buffer con i parametri di default del TF corrente:
Tutto si compila, niente viene disegnato. Di cos'altro ha bisogno? :(
In mql5 il lavoro con gli indicatori personalizzati e standard è organizzato diversamente che in mql4. Se in mql4 è possibile ottenere solo un valore di indicatore attraverso iCustom, in mql5 è possibile ottenere valori di indicatore per tutta la profondità della storia nell'array. La seconda grande differenza è la direzione dell'indicizzazione nei buffer degli indicatori.
È noioso guardare tutto il codice e controllarlo rispetto all'originale, quindi mi limiterò a segnalare i principali:
Il file deve trovarsi nella cartella Indicators o in una sottocartella situata nella stessa Indicators.
Ecco la linea per ottenere la maniglia dell'indicatore MA
e questa è la stringa per ottenere il valore dell'indicatore MA
in questo caso ad un buffer o array aggiuntivo.
Risulta che per ottenere i dati dell'indicatore personalizzato
E poi puoi elaborare i valori dell'indicatore da questo buffer aggiuntivo in qualche modo, o puoi metterli nel buffer dell'indicatore senza dimenticare la direzione dell'indicizzazione.
Grazie! Ho scritto qualcosa come ho capito, e ora solo un errore appare durante la compilazione. Sulla linea
erroreto_copy - identificatore non dichiarato.
In quale sezione e come lo dichiaro?
Grazie! Ho scritto qualcosa come ho capito, e ora solo un errore appare durante la compilazione. Sulla linea
erroreto_copy - identificatore non dichiarato.
In quale sezione e come lo dichiaro?
Devi confrontare i miei suggerimenti con il tuo codice e con il codice sorgente che hai già sistemato. Questa variabile è dichiarata in questi codici. E oltre alle mie osservazioni, dovreste cercare di capire la logica degli indicatori di costruzione in generale, e non solo cambiare un pezzo di merda per un pezzo di merda.
In MetaTrader 5, la performance di un EA su una coppia di valute può essere radicalmente diversa dalla performance, per esempio, sull'indice RTS?
Il consigliere lavorerà nel modo in cui è scritto. E non altrimenti.
Per quanto riguarda le sfumature da considerare: RTS è uno scambio, quindi il tipo di posizioni contabili NETTING. Se l'EA non è originariamente progettato per lavorare sulla rete, il risultato è imprevedibile.
Il consigliere lavorerà nel modo in cui è scritto. E non altrimenti.
Per quanto riguarda le sfumature da considerare: RTS è uno scambio, quindi il tipo di posizioni contabili NETTING. Se l'EA non è originariamente progettato per lavorare su reti, il risultato è imprevedibile.
Se il tuo EA non è destinatoa lavorare sul netting, il risultato è imprevedibile.
Non ci sono posizioni multidirezionali nella strategia.
Grazie, come si fa a sapere con certezza dal codice se è progettatoper lavorare su reti o no.
Non ci sono posizioni a direzione opposta nella strategia.
E, se è così (sempre UNA posizione di lavoro), allora non c'è differenza - sia che si tratti di netting o di hedging.
Se questo è il caso (c'è sempre UNA posizione in funzione), non fa differenza se si tratta di netting o di copertura.
Su un segnale inverso in valute (Forex) le posizioni sono chiuse, ma non sullo scambio. Dove cercare, cosa cercare?
Su un segnale inverso sulle valute, le posizioni vengono chiuse, ma non sul cambio. Dove cercare, cosa cercare?
Cercare il luogo da cui proviene il comando di chiusura della posizione.