Please help. I know how to use CHARTEVENT_KEYDOWN
to get the key pressed and to use that to program an action for the key. However, I would like to program extra shortcuts to make use of existing MT4 interface functions and cannot find the appropriate programming language for it. If you want to create a trendline in MT4, you can click on the trendline button which puts MT4 in trendline drawing mode. I want to be able to press "l" and then have my code put the platform in trendline drawing mode. Please can you point me to the appropriate command to put MT4 into trendline drawing mode?
You can use the WinAPI PostMessageW()
function to do the task.
You can use #include <WinUser32.mqh>
to import the WinAPI function descriptions.
Then you can use these commands to perform the task you need.
(For trendline #define MT4_WMCMD_TRENDLINE 33257
)
Here you can find the commands
#define MT4_WMCMD_AUTOSCROLL 33017
#define MT4_WMCMD_BARS 33018
#define MT4_WMCMD_CANDLES 33019
/* 33020 unknown */
#define MT4_WMCMD_GRID 33021
#define MT4_WMCMD_LINE 33022
#define MT4_WMCMD_SHIFT 33023
#define MT4_WMCMD_VOLUMES 33024
#define MT4_WMCMD_ZOOM_IN 33025
#define MT4_WMCMD_ZOOM_OUT 33026
/* 33027-33047 unknown */
#define MT4_WMCMD_EXPERT_INPUTS 33048 /* Open expert Inputs dialog */
/* 33049 unknown */
#define MT4_WMCMD_REMOVE_EXPERT 33050 /* Remove expert advisor from chart */
/* 33051-33053 unknown */
#define MT4_WMCMD_SAVE_AS_PICTURE 33054
#define MT4_WMCMD_3_MONTHS 33057
#define MT4_WMCMD_ALL_HISTORY 33058
#define MT4_WMCMD_LAST_MONTH 33063
#define MT4_WMCMD_SAVE_Statement 33064
/* 33055-33133 unknown */
#define MT4_WMCMD_PERIOD_D1 33134
/* 33135 unknown */
#define MT4_WMCMD_PERIOD_H4 33136
#define MT4_WMCMD_PERIOD_M1 33137
#define MT4_WMCMD_PERIOD_M5 33138
#define MT4_WMCMD_PERIOD_M15 33139
#define MT4_WMCMD_PERIOD_M30 33140
#define MT4_WMCMD_PERIOD_W1 33141
/* 33142-33156 unknown */
#define MT4_WMCMD_PROPERTIES 33157 /* Chart Properties (F8) */
/* 33158-33176 apparently unused */
#define MT4_WMCMD_PERIOD_SEPARATE 33177 /* Show/hide period separators */
/* 33178-33196 unknown */
#define MT4_WMCMD_MOVE_RIGHT 33197 /* Move right (right/down arrow) */
#define MT4_WMCMD_MOVE_LEFT 33198 /* Move left (left/up arrow) */
/* 33199-33219 unknown */
#define MT4_WMCMD_SAVE_TEMPLATE 33220 /* Save template... */
/* 33221-33229 unknown */
#define MT4_WMCMD_33230 33230 /* Arrow Down */
#define MT4_WMCMD_33231 33231 /* Arrow Up */
#define MT4_WMCMD_33232 33232 /* icons-ticks */
#define MT4_WMCMD_MOUSE_CROSS 33233 /* crosshair */
#define MT4_WMCMD_MOUSE_CURSOR 33234 /* the cursor */
#define MT4_WMCMD_33235 33235 /* Box-cyclical Line */
#define MT4_WMCMD_33236 33236 /* equidistant channel */
#define MT4_WMCMD_33237 33237 /* Fibonacci lines */
#define MT4_WMCMD_33238 33238 /* Box-Fibonacci-arc */
#define MT4_WMCMD_33239 33239 /* Box-Fibonacci-fan */
#define MT4_WMCMD_33240 33240 /* Box Channels, Fibonacci */
#define MT4_WMCMD_33241 33241 /* Box-Gann-grid Hanna */
#define MT4_WMCMD_33242 33242 /* Box-Gann-line Hanna */
#define MT4_WMCMD_33243 33243 /* Box-Gann-fan Hanna */
#define MT4_WMCMD_HLINE 33244 /* horizontal line */
/* 33245 unknown */
#define MT4_WMCMD_33246 33246 /* Box Andrews pitchfork */
#define MT4_WMCMD_33247 33247 /* Box-shape-rectangle */
#define MT4_WMCMD_33248 33248 /* Box-channels-linear regression */
/* 33249-33250 apparently unused */
#define MT4_WMCMD_33251 33251 /* Box-icons-stop */
/* 33252 unknown */
#define MT4_WMCMD_33253 33253 /* text */
#define MT4_WMCMD_33254 33254 /* Box-icons-bad */
#define MT4_WMCMD_33255 33255 /* Box-icons-well */
#define MT4_WMCMD_33256 33256 /* Box-Fibonacci-time-zone */
#define MT4_WMCMD_TRENDLINE 33257 /* trend line */
#define MT4_WMCMD_33258 33258 /* Box-Line-trend line for the corner */
#define MT4_WMCMD_33259 33259 /* Box-figure-triangle */
#define MT4_WMCMD_VLINE 33260 /* Vertical Line */
#define MT4_WMCMD_LABEL 33261 /* text label */
/* 33262-33323 unknown */
#define MT4_WMCMD_UPDATE_DATA 33324 /* This doesn't cause experts start() to run */
/* 33325-33333 unknown */
#define MT4_WMCMD_PERIOD_MN1 33334 /* timeframe MN */
/* 33335-34299 unknown */
#define MT4_WMCMD_34300 34300 /* 34300-34699 custom indicators in alphabetical order */
#define MT4_WMCMD_34700 34700 /* Indicators-moving average of oscillator */
#define MT4_WMCMD_34701 34701 /* Indicators-accelerator oscillator */
#define MT4_WMCMD_34702 34702 /* Indicators-accumulation/distribution */
#define MT4_WMCMD_34703 34703 /* Indicators-alligator */
#define MT4_WMCMD_34704 34704 /* indicators-average directional movement index */
#define MT4_WMCMD_34705 34705 /* indicators-average true range */
#define MT4_WMCMD_34706 34706 /* Indicators-awesome oscillator */
#define MT4_WMCMD_34707 34707 /* Indicators-bears power */
#define MT4_WMCMD_34708 34708 /* indicator-bollinger bands */
#define MT4_WMCMD_34709 34709 /* Indicators-bulls power */
#define MT4_WMCMD_34710 34710 /* Indicators-commodity channel index */
#define MT4_WMCMD_34711 34711 /* Indicators-demarker */
#define MT4_WMCMD_34712 34712 /* Indicators-envelopes */
#define MT4_WMCMD_34713 34713 /* Indicators-force index */
#define MT4_WMCMD_34714 34714 /* Indicators-fractals */
#define MT4_WMCMD_34715 34715 /* Indicators-gator oscillator */
#define MT4_WMCMD_34716 34716 /* Indicators-ichimoku kinko hyo */
#define MT4_WMCMD_34717 34717 /* Indicators-macd */
#define MT4_WMCMD_34718 34718 /* indicators-market facilitation index */
#define MT4_WMCMD_34719 34719 /* Indicators-momentum */
#define MT4_WMCMD_34720 34720 /* indicators-money flow index */
#define MT4_WMCMD_34721 34721 /* indicators-moving averages */
#define MT4_WMCMD_34722 34722 /* Indicators-on balance volume */
#define MT4_WMCMD_34723 34723 /* Indicators-parabolic sar */
#define MT4_WMCMD_34724 34724 /* indicators-relative strength index */
#define MT4_WMCMD_34725 34725 /* indicators-relative vigor index */
#define MT4_WMCMD_34726 34726 /* Indicators-standard deviation */
#define MT4_WMCMD_34727 34727 /* Indicators-stochastic oscillator */
#define MT4_WMCMD_34728 34728 /* Indicators-volumes */
#define MT4_WMCMD_34729 34729 /* Indicators-william's percent range */
/* 34730-34799 unknown */
#define MT4_WMCMD_LOAD_TEMPLATE 34800 /* 34800-34899 load template in alphabetical order */
#define MT4_WMCMD_REMOVE_TEMPLATE 34900 /* 34900-34998 Remove Template in alph. order (conf. dialog) */
#define MT4_WMCMD_KILL_TEMPLATES 34999 /* remove *.tpl (confirmation dialog) */
/* 35000-35399 unknown */
#define MT4_WMCMD_PERIOD_H1 35400 /* timeframe H1 */
#define MT4_WMCMD_OBJECTS_LIST 35402 /* open objects list window */
#define MT4_WMCMD_ORDER_BUYLIMIT 35454 /* order buy limit */
#define MT4_WMCMD_ORDER_BUYSTOP 35455 /* order buy stop */
#define MT4_WMCMD_ORDER_SELLLIMIT 35456 /* order sell limit */
#define MT4_WMCMD_ORDER_SELLSTOP 35457 /* order sell stop */
#define MT4_WMCMD_ORDER_MARKET 35458 /* new order (F9) */
#define MT4_WMCMD_35464 35464 /* right price tag */
#define MT4_WMCMD_35511 35511 /* Graphic template-download template */
/* 35512-37011 unknown */
/* 37012-40000 not inspected */
#define MT4_WMCMD_57602 57602 /* close the current chart */
#define MT4_WMCMD_57603 57603 /* Save as (ascii/csv) */
#define MT4_WMCMD_57604 57604 /* Save as (ascii/csv) - apparently same */
#define MT4_WMCMD_PRINT_DIALOG 57607 /* Open Print... Dialog */
#define MT4_WMCMD_PRINT_DIRECT 57608 /* Print immediately */
#define MT4_WMCMD_PRINT_PREVIEW 57609 /* Open Print Preview dialog */
/* 57610-59675 unknown (re-checked up to 58011) */
/* 59675-... not inspected */