Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 592

 

Per favore consigliate perché l'aggiunta della stringa #property strict impedisce il disegno delle frecce, ecco tutto il codice

//+------------------------------------------------------------------+

//| revisione oscillante.mq4 |

//| Copyright 2018, MetaQuotes Software Corp.

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2018, MetaQuotes Software Corp."

#proprietà link "https://www.mql5.com"

#proprietà versione "1.00"

#proprietà indicator_separate_window

#proprietà indicator_buffers 5

#proprietà indicator_plots 4

//--- plot Signaler

#property indicator_label1 "Signaler"

#proprietà indicator_type1 DRAW_LINE

#proprietà indicator_color1 clrRed

#proprietà indicator_style1 STYLE_SOLID

#proprietà indicator_width1 1

//--- tracciare Z

#property indicator_label2 "Z"

#proprietà indicator_type2 DRAW_LINE

#property indicator_color2 clrBeige

#proprietà indicator_style2 STYLE_DOT

#proprietà indicator_width2 1

//--- trama Bay

#property indicator_label3 "Bay"

#proprietà indicator_type3 DRAW_ARROW

#property indicator_color3 clrLightSkyBlue

#proprietà indicator_style3 STYLE_SOLID

#proprietà indicator_width3 1

//--- trama Vendere

#property indicator_label4 "Vendere"

#proprietà indicator_type4 DRAW_ARROW

#property indicator_color4 clrDeepPink

#proprietà indicator_style4 STYLE_SOLID

#proprietà indicator_width4 1

//--- parametri di ingresso

input int PCCI=14; // periodo indicatore PCCI

input double KCCI=1.1; //fattore di regolazione

input int PMOM=14; //periodo dell'indicatore Momentum

input int KMOM=1111; // fattore di lisciatura

input int PATR=14; // periodo indicatore ATR

input int KATR=111111; // fattore di lisciatura

input int PFOR=14; // periodo dell'indicatore Forse

input int KFOR=1111; // fattore di lisciatura

input int PTVR=12; // periodo p dell'indicatore TVI

input int PTVS=12; // periodo c dell'indicatore TVI

input int PTVU=5; //periodo all'indicatore TPI

input int KTVl=111; // coefficiente di livellamento

input int POSF=12; // periodo dell'indicatore AOS veloce

input int POSS=26; // periodo dello slot dell'indicatore AOS

input int POSZ=9; //piccolo periodo dell'indicatore AOS

input int KAOS=111111; // fattore di lisciatura

input int KAD=111; //fattore di spostamento dell'indicatore AOS

input double KK=2.0; // filtro per le frecce

input int Amendment=20; //disegna le frecce nella finestra dell'indicatore in un formato digeribile

//--- buffer di indicatori

doppio SignalerBuffer[];

doppio Z_Buffer[];

doppio BayBuffer[]; doppio BayBuffer[];

doppio SellBuffer[]; doppio SellBuffer[];

doppio PatchBuffer[];

//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'indicatore personalizzato

//+------------------------------------------------------------------+

int OnInit()

{

IndicatorSetInteger(INDICATOR_DIGITS,0);

SetIndexBuffer(0,SignalerBuffer);

SetIndexBuffer(1,Z_Buffer);

SetIndexBuffer(2,BayBuffer);

SetIndexBuffer(3,SellBuffer);

SetIndexBuffer(4,PatchBuffer);

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_ARROW);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(2,241);

SetIndexArrow(3,242);

SetIndexEmptyValue(2,0.0);

SetIndexEmptyValue(3,0.0);

IndicatoreNomeCorto("Segnalatore seminterrato(" +(stringa) PATR + ")");

//---

return(INIT_SUCCEED);

}

//+------------------------------------------------------------------+

//| funzione di iterazione dell'indicatore personalizzata

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

int i , limit=rates_total-prev_calculated ;

doppio cci, atr, mom, forc, ao, ac, ad, tvi, osma ;

//---- impostare i parametri di conteggio

if(prev_calculated==0)limit--;

else limit++;

//---- contare

for(i=limit-1; i>=0; i--)

{

cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI;

mom=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;

forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR;

tvi=iCustom(NULL,0, "TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;

osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS;

atr=iATR(NULL,0,PATR,i)*KATR;

ao=iAO(NULL,0,i)*KAOS ;

ac=iAC(NULL,0,i)*KAOS ;

ad=iAD(NULL,0,i)/KAD ;

SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;

}

for(i=limit-1; i>=0; i--)

{

Z_Buffer[i] = (SignalerBuffer[i]+SignalerBuffer[i-1])/2 ;

PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;

}

for(i=0; i<limit && !IsStopped(); i++)

{

se(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

BayBuffer[i]=SignalerBuffer[i]-Amendment;

se(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)

SellBuffer[i]=SignalerBuffer[i]+Amendment;

}

//--- restituire il valore di prev_calculato per la prossima chiamata

return(rates_total);

}

//+------------------------------------------------------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov:
Al venditore di questo indicatore.

Grazie...
 
Qualcuno può dirmi cosa fare se durante un test EA si rifiuta di copiare i buffer?
 
Roman Sharanov:
Qualcuno può dirmi cosa fare se durante un test EA si rifiuta di copiare i buffer?

Identificare la causa.

 
Artyom Trishkin:

Identificare la causa.

E cosa potrebbe essere? È la dimensione del codice? Ho volutamente disabilitato tutta la logica, ho lasciato solo la copia del buffer e niente

 
Roman Sharanov:

E cosa potrebbe essere? È la dimensione del codice? Ho volutamente disabilitato tutta la logica, ho lasciato solo la copia del buffer e niente

Tutti sono telepatici nel fine settimana...
 

Un errore di memoria esaurita appare quando si esegue un test (non parte). Come risolvere il problema?

Dopo aver riavviato il terminale, il test parte e poi dopo alcune prove è di nuovo senza memoria.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Un errore di memoria esaurita appare quando si esegue un test (non parte). Come risolvere il problema?

Dopo aver riavviato il terminale, il test inizia, e poi dopo diversi test di nuovo fuori dalla memoria.

Il programma che state testando consuma tutta la vostra memoria. Cerca gli errori in esso. Controlla i log di "Journal" e "Expert Advisors" sulla demo (non nel tester) - cosa dice lì? Forse, dice qualcosa sulla perdita di memoria durante il cambiamento del timeframe.

Non indovinerò oltre senza il codice.

 
Artyom Trishkin:

Il programma che state testando consuma tutta la vostra memoria. Cerca gli errori in esso. Guarda i log "Log" e "Expert Advisors" sulla demo (non nel tester) - cosa dice lì? Forse, dice qualcosa sulla perdita di memoria durante il cambiamento del timeframe.

Non indovinerei oltre senza il codice.

Ci sono molti oggetti non cancellati nei registri dopo la fine dei test. Diverse migliaia... È un problema?

 
Juer:

C'è un mucchio di oggetti non riusciti nei log dopo la fine dei test. Diverse migliaia... È questo il problema?

Qui è dove saranno in grado di rispondere con certezza.