I used indicator with other priod not current period,but no data received,why and how?
at 1M period, Ext1Handle , Ext2Handle are OK, but Ext3Handle with other period not calculated, sometime Ext2Handle also not calculated.
report in expert log window is 2012.09.13 17:57:28 Not all data of Ext3Handle is calculated (5001bars ). Error0
mo data for other period ??????
Maybe current period can not change!
Is It possible to change the indicators handel's period dynamic inside int OnCalculate()????
Check result of CopyXXX in code of your indicator.
if timeframe is different from current - first call of CopyXXX is only starting the process of building the bars and returning result will be less 0. After building process finish, call CopyXXX will return count of copied bars.
When requesting data from the indicator, if requested timeseries are not yet built or they need to be downloaded from the server, the function will immediately return -1, but the process of downloading/building will be initiated.
Thanks.
I fond it why, CopyBuffer only copy from start-index of src-buffer to same star-index of dst-buffer, so need a middle-buffer to tranfer data through ArrayAopy.
Still another peroblem need to resolve:
ENUM_TIMEFRAMES ,tf,tf1;
if I use below code with variable tf and tf2 as period, the threehandle all are PERIOD_CURRENT in runtime.
Ext1Handle=iCustom(NULL,PERIOD_CURRENT,"xxxx",SlowEMA1);
Ext2Handle=iCustom(NULL,tf,"xxxx",SlowEMA1);
Ext3Handle=iCustom(NULL,tf1,"xxxx",SlowEMA1);
below codes work OK, but this can not change with changing current period.
Ext1Handle=iCustom(NULL,PERIOD_CURRENT,"xxxx",SlowEMA1);
Ext2Handle=iCustom(NULL,PERIOD_M5,"xxxx",SlowEMA1);
Ext3Handle=iCustom(NULL,PERIOD_M15,"xxxx",SlowEMA1);
Hi,
Sounds like you're not setting the values of tf and tf1 at all or the lines setting them are inside an IF statement that never gets executed. Make sure of the last one. Could you please post that part of the code?
Below is code
ENUM_TIMEFRAMES tf0,tf,tf1; void OnInit() { ................. tf0 = PERIOD_CURRENT; switch (PERIOD_CURRENT) { case PERIOD_M1: tf =PERIOD_M5;tf1 =PERIOD_M15; break; case PERIOD_M5: tf =PERIOD_M15; tf1 =PERIOD_H1;break; case PERIOD_M15: tf =PERIOD_H1;tf1 =PERIOD_H4;break; case PERIOD_M30: tf =PERIOD_H2;tf1 =PERIOD_H8; break; case PERIOD_H1: tf =PERIOD_H4; tf1 =PERIOD_H12;break; case PERIOD_H4: tf =PERIOD_H12; tf1 =PERIOD_D1; break; case PERIOD_D1: tf =PERIOD_D1; tf1 =PERIOD_W1; break; } //--- get MA's handles Ext1Handle=iCustom(NULL,PERIOD_CURRENT,"xxxx",SlowEMA1); Ext2Handle=iCustom(NULL,PERIOD_M5,"xxxx",SlowEMA1); Ext3Handle=iCustom(NULL,PERIOD_M15,"xxxx",SlowEMA1); //below worked error! // Ext1Handle=iCustom(NULL,PERIOD_CURRENT,"xxxx",SlowEMA1); // Ext2Handle=iCustom(NULL,tf,"xxxx",SlowEMA1); // Ext3Handle=iCustom(NULL,tf1,"xxxx",SlowEMA1); ............
I want use variables as period parameter,but not work,
now only such codes can work :
Ext2Handle=iCustom(NULL,PERIOD_M5,"xxxx",SlowEMA1);
Ext3Handle=iCustom(NULL,PERIOD_M15,"xxxx",SlowEMA1);
I am transfer my indicators from MQL4 to MQL5.
referre:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I used indicator with other priod not current period,but no data received,why and how?
at 1M period, Ext1Handle , Ext2Handle are OK, but Ext3Handle with other period not calculated, sometime Ext2Handle also not calculated.
report in expert log window is 2012.09.13 17:57:28 Not all data of Ext3Handle is calculated (5001bars ). Error0
mo data for other period ??????
Maybe current period can not change!
Is It possible to change the indicators handel's period dynamic inside int OnCalculate()????