doubt it. Let the user determine what is appropriate.
PostMessageA(GetAncestor(WindowHandle(Symbol(),Period()),2),WM_COMMAND,33023,0);
qjol:
That just turns on/off the shift. The OP asked for "program a definite chart shift" i.e. control the amount.
Thank you!
@WHRoeder: As I see, the user can't determine what is appropriate. The user can only switch the chart shift on or off.
When I want only to write one value on the right of the chart I find the fixed chart shift is too much.
There is a way to shift the chart now.
Add this 2 functions to your indicator :
//+---------------------------------------------------------------------------+ //| The function receives shift size of the zero bar from the right border | //| of the chart in percentage values (from 10% up to 50%). | //+---------------------------------------------------------------------------+ double ChartShiftSizeGet(const long chart_ID=0) { //--- prepare the variable to get the result double result=EMPTY_VALUE; //--- reset the error value ResetLastError(); //--- receive the property value if(!ChartGetDouble(chart_ID,CHART_SHIFT_SIZE,0,result)) { //--- display the error message in Experts journal Print(__FUNCTION__+", Error Code = ",GetLastError()); } //--- return the value of the chart property return(result); } //+--------------------------------------------------------------------------------------+ //| The function sets the shift size of the zero bar from the right | //| border of the chart in percentage values (from 10% up to 50%). To enable the shift | //| mode, CHART_SHIFT property value should be set to | //| true. | //+--------------------------------------------------------------------------------------+ bool ChartShiftSizeSet(const double value,const long chart_ID=0) { //--- reset the error value ResetLastError(); //--- set property value if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value)) { //--- display the error message in Experts journal Print(__FUNCTION__+", Error Code = ",GetLastError()); return(false); } //--- successful execution return(true); } //+------------------------------------------------------------------+
Then use this :
if(ChartShiftSizeGet()<ChartShift)ChartShiftSizeSet(ChartShift);
Where ChartShift value is set by user ( between 10% and 50%).
extern int ChartSift = 20;
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi,
I have programmed an indicator and wrote a few labels on the right. Can I program a definite chart shift for my indicator?