Cari signori, chiedo di avere un occhio esperto sul "tentativo numero uno". L'argomento è: ho ottenuto un codice "incrociando" un indicatore frattale scritto in MQL5 e l'indicatore azzx_larry-2.0, la cui essenza è di escludere le cosiddette "barre interne" durante la ricerca di un estremo (allegato). Durante la compilazione, otteniamo quattro errori, tutti in quella parte di codice che è stata presa in prestito da azzx scritta in "4". Sono sorte delle domande nell'interpretazione degli "errori":
1. Perché la dichiarazione for (posto nel codice - sottolineato) è proposta per essere messa in Global. ('for' - le espressioni non sono ammesse in uno scopo globale).
2. Perché il compilatore considera High[bar] e Low[bar] (anche sottolineati nel codice) non dichiarati, mentre diverse righe sopra nel codice ci sono High[i] e Low[i] che non considera errori.
('High' - identificatore non dichiarato, 'Low' - identificatore non dichiarato).
3. Lo stesso vale per il limite - perché il compilatore lo considera non dichiarato. ('limit' - identificatore non dichiarato).
PS: parte del codice (indicatore frattale) è derivato dalla documentazione mql5, e parte del codice dell'indicatore azzx_larry2.0 è derivato dal codobase mql4, autore azzx
//+------------------------------------------------------------------+//| azzx 2.0.mq5 |//| Copyright 2009, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"2009, MetaQuotes Software Corp."#property link"http://www.mql5.com"//---- indicator settings#property indicator_chart_window#property indicator_buffers2#property indicator_plots2#property indicator_type1 DRAW_ARROW#property indicator_type2 DRAW_ARROW#property indicator_color1 White
#property indicator_color2 White
#property indicator_label1 "azzx Up"#property indicator_label2 "azzx Down"//---- indicator buffersdouble max[];
double min[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+voidOnInit()
{
//---- indicator buffers mappingSetIndexBuffer(0,max,INDICATOR_DATA);
SetIndexBuffer(1,min,INDICATOR_DATA);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//---- sets first bar from what index will be drawnPlotIndexSetInteger(0,PLOT_ARROW,108);
PlotIndexSetInteger(1,PLOT_ARROW,108);
//---- arrow shifts when drawingPlotIndexSetInteger(0,PLOT_ARROW_SHIFT,0);
PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,0);
//---- sets drawing line empty value--PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
}
//+------------------------------------------------------------------+//| Accelerator/Decelerator Oscillator |//+------------------------------------------------------------------+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;
//---if(rates_total<3)
return(0);
//---if(prev_calculated<3)
{
limit=1;
//--- clean up arraysArrayInitialize(max,EMPTY_VALUE);
ArrayInitialize(min,EMPTY_VALUE);
}
else limit=rates_total-1;
for(i=limit;i<rates_total-1 && !IsStopped();i++)
{
//---- Up azzxif(High[i]>High[i+1] && High[i]>=High[i-1])
max[i]=High[i];
else max[i]=EMPTY_VALUE;
//---- Low azzxif(Low[i]<Low[i+1] && Low[i]<=Low[i-1])
min[i]=Low[i];
else min[i]=EMPTY_VALUE;
}
//--- OnCalculate done. Return new prev_calculated.return(rates_total);
}
//+------------------------------------------------------------------+// Поиск краткосрочных экстремумов.for(i=limit-2;i>1;i--)
{
l = left_bar(i);
r = right_bar(i);
if((l>0) && (r>0))
{
if(((Low[l]>=Low[i]) && (Low[r]>Low[i])) ||
((Low[l]>Low[i]) && (Low[r]>Low[i])))
{
min[i] =1;
}
}
if((l>0) && (r>0))
{
if(((High[l]<= High[i]) && (High[r]<High[i])) ||
((High[l]<High[i]) && (High[r]<High[i])))
{
max[i] =1;
}
}
// Отметка экстремумов.ArrayInitialize(buf_st_min,0);
ArrayInitialize(buf_st_max,0);
for(i=limit-1;i>0;i--)
{
switch(min[i])
{
case1 : buf_st_min[i]=Low[i]; break;
}
switch(max[i])
{
case1 : buf_st_max[i]=High[i]; break;
}
}
return(0);
}
// Проверка, что заданный бар - внутренний.bool is_internal(int bar)
{
return((High[bar] < High[bar + 1]) &&
(Low [bar] > Low [bar + 1]));
}
// Возвращает бар слева от заданного бара или -1.int left_bar(int bar)
{
int i;
for(i=bar+1;i<limit-2;i++)
{
if(is_internal(i)==false)
{
return(i);
}
}
return(-1);
}
// Возвращает бар справа от заданного бара или -1.int right_bar(int bar) {
int i;
for(i=bar-1;i>0;i--)
{
if(is_internal(i)==false)
{
return(i);
}
}
return(-1);
}
//+------------------------------------------------------------------+//| Indicator deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- почистим график при удалении индикатораComment("");
}
Credo che il codice abbia High[i] e Low[i] qualche riga sopra che non considera errori. 3. Allo stesso modo riguardo al limite - perché il compilatore lo considera non dichiarato
Ciao a tutti, potete dire agli utenti del forum che lavorano con il prodotto software ITrade Chaos di G. Stanilevich? Mi piace molto ma ci sono alcune cose che non capisco. Se non vi dispiace, chi lavora o ha lavorato con questo prodotto, vi prego di contattarmi su Skype. Il mio skype è Furkat1962 Grazie in anticipo. Cordialmente Furkat
torblin: Non credo che questo post sia per i principianti, quindi perché non mi dici dove chiedere a un principiante con un 200dpa cosa farà il consulente?
Non vuoi capire che il FOREX non è un commercio gratuito, ma è lo stesso lavoro di qualsiasi altro commercio, solo che il ritorno è più alto quando ci metti il lavoro!
Ho aggiunto un indicatore al grafico dall'EA - come faccio a colorare questo indicatore ora? L'indicatore usa 3 linee, vorrei farle tutte di 3 colori e spessore diversi.
YAndrey: Ho aggiunto un indicatore al grafico dall'EA - come faccio a colorare questo indicatore ora? L'indicatore usa 3 linee, vorrei farle tutte di 3 colori e spessore diversi.
Sì, si può fare. Ma non mi piacerebbe. E mi piacerebbe ascoltare le persone intelligenti ;). Ho trovato una via d'uscita creando un indicatore personalizzato con parametri di input sotto forma di colori per ogni linea, ma come posso renderlo più semplice? Quindi, di nuovo una domanda. Sto creando un indicatore iBands nel mio Expert Advisor. Lo allego al grafico. Vorrei disegnare le sue 3 linee con colori diversi. È possibile?
ciao a tutti, non sembra che il post è per i neofiti domande oh gee whiz dove chiedere con dp 200 che consigliere funzionerà?
Cari signori, chiedo di avere un occhio esperto sul "tentativo numero uno". L'argomento è: ho ottenuto un codice "incrociando" un indicatore frattale scritto in MQL5 e l'indicatore azzx_larry-2.0, la cui essenza è di escludere le cosiddette "barre interne" durante la ricerca di un estremo (allegato). Durante la compilazione, otteniamo quattro errori, tutti in quella parte di codice che è stata presa in prestito da azzx scritta in "4". Sono sorte delle domande nell'interpretazione degli "errori":
1. Perché la dichiarazione for (posto nel codice - sottolineato) è proposta per essere messa in Global. ('for' - le espressioni non sono ammesse in uno scopo globale).
2. Perché il compilatore considera High[bar] e Low[bar] (anche sottolineati nel codice) non dichiarati, mentre diverse righe sopra nel codice ci sono High[i] e Low[i] che non considera errori.
('High' - identificatore non dichiarato, 'Low' - identificatore non dichiarato).
3. Lo stesso vale per il limite - perché il compilatore lo considera non dichiarato. ('limit' - identificatore non dichiarato).
PS: parte del codice (indicatore frattale) è derivato dalla documentazione mql5, e parte del codice dell'indicatore azzx_larry2.0 è derivato dal codobase mql4, autore azzx
А робот случаем не из Маркета?
ci sono High[i] e Low[i] nel codice, che non conta come errori. 3. Lo stesso vale per il limite - perché il compilatore lo considera non dichiarato
Hai una parentesi graffa di chiusura anticipata qui:
Oppure mancano diverse righe, perché non sono dichiarate.
Hai una parentesi graffa di chiusura anticipata qui:
Oppure mancano diverse righe perché non sono annunciate
Grazie per la vostra partecipazione. La parentesi è stata spostata alla fine del codice, la compilazione ha dato 16 errori - qualcosa su cui lavorare.
Non credo che questo post sia per i principianti, quindi perché non mi dici dove chiedere a un principiante con un 200dpa cosa farà il consulente?
Ho aggiunto un indicatore al grafico dall'EA - come faccio a colorare questo indicatore ora? L'indicatore usa 3 linee, vorrei farle tutte di 3 colori e spessore diversi.
Puoi usare i pennarelli sul monitor).