{"id":65657,"date":"2026-03-15T03:27:04","date_gmt":"2026-03-14T18:27:04","guid":{"rendered":"https:\/\/sys-tre.com\/forexguide\/?p=65657"},"modified":"2026-04-14T13:21:59","modified_gmt":"2026-04-14T04:21:59","slug":"mql5-event-handlers","status":"publish","type":"post","link":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/","title":{"rendered":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u5b8c\u5168\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u5168\u89e3\u8aac"},"content":{"rendered":"\n<p>MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u95a2\u6570\u3092\u5b8c\u5168\u89e3\u8aac\u3002OnInit\u30fbOnDeinit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u30fbOnTrade\u30fbOnTester\u30fbOnBookEvent\u306a\u3069\u3001EA\u30fb\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30fb\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u52d5\u4f5c\u3092\u5236\u5fa1\u3059\u308b\u3059\u3079\u3066\u306e\u30a4\u30d9\u30f3\u30c8\u95a2\u6570\u3092\u30b3\u30fc\u30c9\u4ed8\u304d\u3067\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"2400\" height=\"1260\" src=\"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers.jpg\" alt=\"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9 \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30ab\u30fc\u30c9\" class=\"wp-image-67611\" srcset=\"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers.jpg 2400w, https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers-300x158.jpg 300w, https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers-1024x538.jpg 1024w, https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers-768x403.jpg 768w, https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers-1536x806.jpg 1536w, https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/03\/mql_mql5-event-handlers-2048x1075.jpg 2048w\" sizes=\"(max-width: 2400px) 100vw, 2400px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"event-model\">MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u30e2\u30c7\u30eb<\/h2>\n\n\n\n<p>MQL5\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u578b\u3067\u3059\u3002\u7279\u5b9a\u306e\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3059\u308b\u3068\u3001\u5bfe\u5fdc\u3059\u308b\u30cf\u30f3\u30c9\u30e9\u95a2\u6570\u304c\u81ea\u52d5\u7684\u306b\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002C\u8a00\u8a9e\u306emain()\u306e\u3088\u3046\u306a\u300c\u6700\u521d\u304b\u3089\u6700\u5f8c\u307e\u3067\u9806\u306b\u5b9f\u884c\u300d\u3059\u308b\u30e2\u30c7\u30eb\u3068\u306f\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\">\n<table class=\"has-fixed-layout\"><thead><tr><th>\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9<\/th><th>\u547c\u3073\u51fa\u3057\u30bf\u30a4\u30df\u30f3\u30b0<\/th><th>EA<\/th><th>\u30a4\u30f3\u30b8<\/th><th>\u30b9\u30af\u30ea\u30d7\u30c8<\/th><\/tr><\/thead><tbody><tr><td>OnInit()<\/td><td>\u30d7\u30ed\u30b0\u30e9\u30e0\u8d77\u52d5\u6642<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnDeinit()<\/td><td>\u30d7\u30ed\u30b0\u30e9\u30e0\u7d42\u4e86\u6642<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTick()<\/td><td>\u65b0\u3057\u3044\u30c6\u30a3\u30c3\u30af\u53d7\u4fe1\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnCalculate()<\/td><td>\u4fa1\u683c\u30c7\u30fc\u30bf\u66f4\u65b0\u6642<\/td><td>\u00d7<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTimer()<\/td><td>\u30bf\u30a4\u30de\u30fc\u30a4\u30d9\u30f3\u30c8\u767a\u751f\u6642<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnChartEvent()<\/td><td>\u30c1\u30e3\u30fc\u30c8\u64cd\u4f5c\u6642<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTrade()<\/td><td>\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8\u767a\u751f\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTradeTransaction()<\/td><td>\u53d6\u5f15\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTester()<\/td><td>\u30d0\u30c3\u30af\u30c6\u30b9\u30c8\u7d42\u4e86\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTesterInit()<\/td><td>\u6700\u9069\u5316\u958b\u59cb\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTesterPass()<\/td><td>\u6700\u9069\u5316\u306e\u5404\u30d1\u30b9\u5b8c\u4e86\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnTesterDeinit()<\/td><td>\u6700\u9069\u5316\u7d42\u4e86\u6642<\/td><td>\u25cb<\/td><td>\u00d7<\/td><td>\u00d7<\/td><\/tr><tr><td>OnBookEvent()<\/td><td>\u677f\u60c5\u5831\u66f4\u65b0\u6642<\/td><td>\u25cb<\/td><td>\u25cb<\/td><td>\u00d7<\/td><\/tr><tr><td>OnStart()<\/td><td>\u30b9\u30af\u30ea\u30d7\u30c8\u5b9f\u884c\u6642<\/td><td>\u00d7<\/td><td>\u00d7<\/td><td>\u25cb<\/td><\/tr><\/tbody><\/table>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"oninit\">OnInit\uff1a\u521d\u671f\u5316<\/h2>\n\n\n\n<p><code>OnInit()<\/code>\u306fEA\/\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u304c\u30c1\u30e3\u30fc\u30c8\u306b\u9069\u7528\u3055\u308c\u305f\u3068\u304d\u3001\u6642\u9593\u8db3\u304c\u5909\u66f4\u3055\u308c\u305f\u3068\u304d\u3001input\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5909\u66f4\u3055\u308c\u305f\u3068\u304d\u3001\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u306e\u53d6\u5f97\u3001\u5909\u6570\u306e\u521d\u671f\u5316\u3001\u30bf\u30a4\u30de\u30fc\u8a2d\u5b9a\u306a\u3069\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnInit \u57fa\u672c\"><code>\/\/ \u623b\u308a\u5024\u306e\u578b\nint OnInit()\n  {\n   \/\/ INIT_SUCCEEDED (0)\uff1a\u521d\u671f\u5316\u6210\u529f\n   \/\/ INIT_FAILED\uff1a\u521d\u671f\u5316\u5931\u6557\uff08EA\u304c\u30c1\u30e3\u30fc\u30c8\u304b\u3089\u524a\u9664\u3055\u308c\u308b\uff09\n   \/\/ INIT_PARAMETERS_INCORRECT\uff1a\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u4e0d\u6b63\n   \/\/ INIT_AGENT_NOT_SUITABLE\uff1a\u30c6\u30b9\u30c8\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u4e0d\u9069\u5408\n\n   return INIT_SUCCEEDED;\n  }<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9f\u8df5\u7684\u306aOnInit<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnInit \u5b9f\u8df5\u4f8b\"><code>#include &lt;TradeTrade.mqh&gt;\n\nCTrade trade;\nint maHandle, rsiHandle;\n\ninput int    MA_Period   = 20;\ninput int    RSI_Period  = 14;\ninput double Lot         = 0.1;\ninput long   MagicNumber = 12345;\n\nint OnInit()\n  {\n   \/\/ 1. \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u691c\u8a3c\n   if(MA_Period < 1 || RSI_Period < 1)\n     {\n      Print(\"\u30a8\u30e9\u30fc: \u671f\u9593\u306f1\u4ee5\u4e0a\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\");\n      return INIT_PARAMETERS_INCORRECT;\n     }\n   if(Lot < SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))\n     {\n      Print(\"\u30a8\u30e9\u30fc: \u30ed\u30c3\u30c8\u6570\u304c\u6700\u5c0f\u30ed\u30c3\u30c8\u672a\u6e80\u3067\u3059\");\n      return INIT_PARAMETERS_INCORRECT;\n     }\n\n   \/\/ 2. \u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u306e\u53d6\u5f97\n   maHandle  = iMA(_Symbol, PERIOD_CURRENT, MA_Period, 0, MODE_EMA, PRICE_CLOSE);\n   rsiHandle = iRSI(_Symbol, PERIOD_CURRENT, RSI_Period, PRICE_CLOSE);\n\n   if(maHandle == INVALID_HANDLE || rsiHandle == INVALID_HANDLE)\n     {\n      Print(\"\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u4f5c\u6210\u5931\u6557\");\n      return INIT_FAILED;\n     }\n\n   \/\/ 3. \u30c8\u30ec\u30fc\u30c9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u8a2d\u5b9a\n   trade.SetExpertMagicNumber(MagicNumber);\n   trade.SetDeviationInPoints(10);\n\n   \/\/ 4. \u30bf\u30a4\u30de\u30fc\u8a2d\u5b9a\uff08\u5fc5\u8981\u306a\u5834\u5408\uff09\n   EventSetTimer(60);  \/\/ 60\u79d2\u3054\u3068\n\n   Print(\"EA\u521d\u671f\u5316\u5b8c\u4e86:\", _Symbol,\"\", EnumToString(_Period));\n   return INIT_SUCCEEDED;\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-big_icon_point\"><code>OnInit()<\/code>\u3067<code>INIT_FAILED<\/code>\u3092\u8fd4\u3059\u3068EA\u306f\u30c1\u30e3\u30fc\u30c8\u304b\u3089\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u81f4\u547d\u7684\u306a\u30a8\u30e9\u30fc\u4ee5\u5916\u3067\u306f<code>INIT_SUCCEEDED<\/code>\u3092\u8fd4\u3057\u3001OnTick()\u5185\u3067\u30a8\u30e9\u30fc\u51e6\u7406\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ondeinit\">OnDeinit\uff1a\u7d42\u4e86\u51e6\u7406<\/h2>\n\n\n\n<p><code>OnDeinit()<\/code>\u306fEA\/\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u304c\u7d42\u4e86\u3059\u308b\u76f4\u524d\u306b\u547c\u3070\u308c\u307e\u3059\u3002\u30ea\u30bd\u30fc\u30b9\u306e\u89e3\u653e\u3001\u30bf\u30a4\u30de\u30fc\u306e\u505c\u6b62\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30ed\u30fc\u30ba\u306a\u3069\u3092\u884c\u3044\u307e\u3059\u3002\u5f15\u6570\u306ereason\u3067\u7d42\u4e86\u7406\u7531\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnDeinit\"><code>void OnDeinit(const int reason)\n  {\n   \/\/ \u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u306e\u89e3\u653e\n   if(maHandle != INVALID_HANDLE)  IndicatorRelease(maHandle);\n   if(rsiHandle != INVALID_HANDLE) IndicatorRelease(rsiHandle);\n\n   \/\/ \u30bf\u30a4\u30de\u30fc\u505c\u6b62\n   EventKillTimer();\n\n   \/\/ \u30c1\u30e3\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u524a\u9664\uff08\u5fc5\u8981\u306a\u5834\u5408\uff09\n   ObjectsDeleteAll(0,\"EA_\");  \/\/\"EA_\"\u3067\u59cb\u307e\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u5168\u524a\u9664\n\n   \/\/ \u7d42\u4e86\u7406\u7531\u3092\u30ed\u30b0\u306b\u51fa\u529b\n   string reasons[] = {\"\u30d7\u30ed\u30b0\u30e9\u30e0\u524a\u9664\",        \/\/ 0: REASON_PROGRAM\"\u624b\u52d5\u524a\u9664\",              \/\/ 1: REASON_REMOVE\"\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\",          \/\/ 2: REASON_RECOMPILE\"\u6642\u9593\u8db3\/\u9298\u67c4\u5909\u66f4\",       \/\/ 3: REASON_CHARTCHANGE\"\u30c1\u30e3\u30fc\u30c8\u9589\u9396\",          \/\/ 4: REASON_CHARTCLOSE\"\u30d1\u30e9\u30e1\u30fc\u30bf\u5909\u66f4\",        \/\/ 5: REASON_PARAMETERS\"\u5225\u30a2\u30ab\u30a6\u30f3\u30c8\u63a5\u7d9a\",      \/\/ 6: REASON_ACCOUNT\"\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u9069\u7528\",      \/\/ 7: REASON_TEMPLATE\"OnInit\u5931\u6557\",            \/\/ 8: REASON_INITFAILED\"\u30bf\u30fc\u30df\u30ca\u30eb\u7d42\u4e86\"         \/\/ 9: REASON_CLOSE\n   };\n\n   if(reason >= 0 && reason < ArraySize(reasons))\n      Print(\"EA\u7d42\u4e86:\", reasons[reason]);\n   else\n      Print(\"EA\u7d42\u4e86: reason=\", reason);\n  }<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">OnDeinit reason\u5b9a\u6570\u4e00\u89a7<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\">\n<table class=\"has-fixed-layout\"><thead><tr><th>\u5b9a\u6570<\/th><th>\u5024<\/th><th>\u610f\u5473<\/th><\/tr><\/thead><tbody><tr><td>REASON_PROGRAM<\/td><td>0<\/td><td>ExpertRemove()\u3067\u524a\u9664<\/td><\/tr><tr><td>REASON_REMOVE<\/td><td>1<\/td><td>\u30c1\u30e3\u30fc\u30c8\u304b\u3089\u624b\u52d5\u524a\u9664<\/td><\/tr><tr><td>REASON_RECOMPILE<\/td><td>2<\/td><td>\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb<\/td><\/tr><tr><td>REASON_CHARTCHANGE<\/td><td>3<\/td><td>\u6642\u9593\u8db3\u307e\u305f\u306f\u9298\u67c4\u306e\u5909\u66f4<\/td><\/tr><tr><td>REASON_CHARTCLOSE<\/td><td>4<\/td><td>\u30c1\u30e3\u30fc\u30c8\u304c\u9589\u3058\u3089\u308c\u305f<\/td><\/tr><tr><td>REASON_PARAMETERS<\/td><td>5<\/td><td>input\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5909\u66f4<\/td><\/tr><tr><td>REASON_ACCOUNT<\/td><td>6<\/td><td>\u5225\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u63a5\u7d9a<\/td><\/tr><tr><td>REASON_TEMPLATE<\/td><td>7<\/td><td>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u9069\u7528<\/td><\/tr><tr><td>REASON_INITFAILED<\/td><td>8<\/td><td>OnInit()\u304c0\u4ee5\u5916\u3092\u8fd4\u3057\u305f<\/td><\/tr><tr><td>REASON_CLOSE<\/td><td>9<\/td><td>\u30bf\u30fc\u30df\u30ca\u30eb\u7d42\u4e86<\/td><\/tr><\/tbody><\/table>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ontick\">OnTick\uff1a\u30c6\u30a3\u30c3\u30af\u30a4\u30d9\u30f3\u30c8<\/h2>\n\n\n\n<p><code>OnTick()<\/code>\u306fEA\u5c02\u7528\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3067\u3001\u65b0\u3057\u3044\u30c6\u30a3\u30c3\u30af\uff08\u4fa1\u683c\u5909\u52d5\uff09\u304c\u53d7\u4fe1\u3055\u308c\u308b\u305f\u3073\u306b\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002EA\u306e\u30e1\u30a4\u30f3\u30ed\u30b8\u30c3\u30af\uff08\u30a8\u30f3\u30c8\u30ea\u30fc\u5224\u5b9a\u3001\u30dd\u30b8\u30b7\u30e7\u30f3\u7ba1\u7406\u7b49\uff09\u306f\u3059\u3079\u3066\u3053\u306e\u4e2d\u306b\u66f8\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnTick \u57fa\u672c\u69cb\u9020\"><code>void OnTick()\n  {\n   \/\/ 1. \u65b0\u3057\u3044\u30d0\u30fc\u306e\u691c\u51fa\uff08\u30d0\u30fc\u78ba\u5b9a\u6642\u306e\u307f\u51e6\u7406\u3059\u308b\u5834\u5408\uff09\n   static datetime lastBarTime = 0;\n   datetime currentBarTime = iTime(_Symbol, PERIOD_CURRENT, 0);\n\n   if(currentBarTime == lastBarTime)\n      return;  \/\/ \u540c\u3058\u30d0\u30fc\u5185\u306e2\u56de\u76ee\u4ee5\u964d\u306e\u30c6\u30a3\u30c3\u30af\u306f\u7121\u8996\n\n   lastBarTime = currentBarTime;\n\n   \/\/ 2. \u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u5024\u306e\u53d6\u5f97\n   double ma[];\n   ArraySetAsSeries(ma, true);\n   if(CopyBuffer(maHandle, 0, 0, 3, ma) < 3) return;\n\n   \/\/ 3. \u30a8\u30f3\u30c8\u30ea\u30fc\u6761\u4ef6\u306e\u5224\u5b9a\n   \/\/ ...\n\n   \/\/ 4. \u30dd\u30b8\u30b7\u30e7\u30f3\u7ba1\u7406\n   \/\/ ...\n  }<\/code><\/pre><\/div>\n\n\n\n<div class=\"swell-block-capbox cap_box is-style-shadow\">\n<div class=\"cap_box_ttl\" data-has-icon=\"1\">\n<svg height=\"1em\" width=\"1em\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" viewBox=\"0 0 48 48\"><path d=\"M47 37.9 27.5 4.1c-.7-1.3-2-2-3.5-2s-2.7.7-3.5 2L1 37.9c-.7 1.3-.7 2.7 0 4 .7 1.3 2 2 3.5 2h39.1c1.4 0 2.7-.7 3.5-2 .6-1.3.6-2.7-.1-4zM21.5 17.5c0-1.4 1.1-2.5 2.5-2.5s2.5 1.1 2.5 2.5v10c0 1.4-1.1 2.5-2.5 2.5s-2.5-1.1-2.5-2.5v-10zM24 38c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z\"><\/path><\/svg>\n<span><strong>\u91cd\u8981<\/strong><\/span>\n<\/div>\n<div class=\"cap_box_content\">\n\n<p><code>OnTick()<\/code>\u306f\u30c6\u30a3\u30c3\u30af\u304c\u6765\u306a\u3044\u9650\u308a\u547c\u3070\u308c\u307e\u305b\u3093\u3002\u9031\u672b\u3084\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u4e2d\u306f\u4e00\u5207\u5b9f\u884c\u3055\u308c\u307e\u305b\u3093\u3002\u6642\u9593\u306b\u57fa\u3065\u304f\u51e6\u7406\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f<code>OnTimer()<\/code>\u3092\u4f75\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u65b0\u3057\u3044\u30d0\u30fc\u306e\u691c\u51fa\u30d1\u30bf\u30fc\u30f3<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"\u65b0\u3057\u3044\u30d0\u30fc\u691c\u51fa\u306e2\u3064\u306e\u65b9\u6cd5\"><code>\/\/ \u65b9\u6cd51: iTime()\u3067\u6bd4\u8f03\uff08\u30b7\u30f3\u30d7\u30eb\uff09\nbool IsNewBar()\n  {\n   static datetime lastBar = 0;\n   datetime current = iTime(_Symbol, PERIOD_CURRENT, 0);\n\n   if(current != lastBar)\n     {\n      lastBar = current;\n      return true;\n     }\n   return false;\n  }\n\n\/\/ \u65b9\u6cd52: iBars()\u3067\u6bd4\u8f03\uff08\u3088\u308a\u8efd\u91cf\uff09\nbool IsNewBar2()\n  {\n   static int lastBars = 0;\n   int current = iBars(_Symbol, PERIOD_CURRENT);\n\n   if(current != lastBars)\n     {\n      lastBars = current;\n      return true;\n     }\n   return false;\n  }\n\n\/\/ \u4f7f\u7528\u4f8b\nvoid OnTick()\n  {\n   if(!IsNewBar()) return;\n\n   \/\/ \u3053\u3053\u306f\u30d0\u30fc\u78ba\u5b9a\u6642\u306e\u307f\u5b9f\u884c\u3055\u308c\u308b\n   Print(\"\u65b0\u3057\u3044\u30d0\u30fc:\", iTime(_Symbol, PERIOD_CURRENT, 0));\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-icon_info\">\u30d0\u30fc\u78ba\u5b9a\u6642\u306e\u307f\u51e6\u7406\u3059\u308b\u3053\u3068\u3067\u3001EA\u306e\u8ca0\u8377\u3092\u5927\u5e45\u306b\u8efd\u6e1b\u3067\u304d\u307e\u3059\u30021\u6642\u9593\u8db3EA\u306a\u30891\u6642\u9593\u306b1\u56de\u3057\u304b\u5224\u5b9a\u3057\u306a\u3044\u305f\u3081\u3001\u30d0\u30c3\u30af\u30c6\u30b9\u30c8\u3082\u9ad8\u901f\u5316\u3055\u308c\u307e\u3059\u3002\u30c8\u30ec\u30fc\u30ea\u30f3\u30b0\u30b9\u30c8\u30c3\u30d7\u306e\u3088\u3046\u306b\u30c6\u30a3\u30c3\u30af\u3054\u3068\u306b\u51e6\u7406\u304c\u5fc5\u8981\u306a\u90e8\u5206\u306f\u3001\u65b0\u30d0\u30fc\u5224\u5b9a\u306e\u5916\u306b\u66f8\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ontimer\">OnTimer\uff1a\u30bf\u30a4\u30de\u30fc\u30a4\u30d9\u30f3\u30c8<\/h2>\n\n\n\n<p><code>OnTimer()<\/code>\u306f\u30bf\u30a4\u30de\u30fc\u30a4\u30d9\u30f3\u30c8\u3067\u5b9a\u671f\u7684\u306b\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u3002\u30c6\u30a3\u30c3\u30af\u306b\u4f9d\u5b58\u3057\u306a\u3044\u5b9a\u671f\u51e6\u7406\uff08\u30d1\u30cd\u30eb\u66f4\u65b0\u3001\u30ed\u30b0\u8a18\u9332\u3001\u30cb\u30e5\u30fc\u30b9\u76e3\u8996\u7b49\uff09\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnTimer\"><code>int OnInit()\n  {\n   \/\/ \u79d2\u5358\u4f4d\u3067\u30bf\u30a4\u30de\u30fc\u8a2d\u5b9a\n   EventSetTimer(60);        \/\/ 60\u79d2\u3054\u3068\n\n   \/\/ \u30df\u30ea\u79d2\u5358\u4f4d\uff08\u3088\u308a\u7cbe\u5bc6\uff09\n   \/\/ EventSetMillisecondTimer(500);  \/\/ 500ms\u3054\u3068\n\n   return INIT_SUCCEEDED;\n  }\n\nvoid OnTimer()\n  {\n   \/\/ 60\u79d2\u3054\u3068\u306b\u547c\u3070\u308c\u308b\n   Print(\"Timer:\", TimeCurrent());\n\n   \/\/ \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u66f4\u65b0\n   UpdateDashboard();\n\n   \/\/ \u65e5\u6b21\u30ec\u30dd\u30fc\u30c8\uff08\u7279\u5b9a\u6642\u523b\u306b\u51e6\u7406\uff09\n   MqlDateTime dt;\n   TimeCurrent(dt);\n   if(dt.hour == 23 && dt.min == 59)\n      GenerateDailyReport();\n  }\n\nvoid OnDeinit(const int reason)\n  {\n   EventKillTimer();  \/\/ \u30bf\u30a4\u30de\u30fc\u505c\u6b62\uff08\u5fc5\u9808\uff09\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-big_icon_caution\"><code>EventSetMillisecondTimer()<\/code>\u3092\u77ed\u3044\u9593\u9694\u3067\u8a2d\u5b9a\u3059\u308b\u3068CPU\u8ca0\u8377\u304c\u9ad8\u304f\u306a\u308a\u307e\u3059\u3002100ms\u4ee5\u4e0b\u306f\u907f\u3051\u3066\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u30bf\u30a4\u30de\u30fc\u306f1\u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u304d1\u3064\u3060\u3051\u3067\u3059\u30022\u56de\u76ee\u306e<code>EventSetTimer()<\/code>\u306f\u524d\u306e\u8a2d\u5b9a\u3092\u4e0a\u66f8\u304d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"onchartevent\">OnChartEvent\uff1a\u30c1\u30e3\u30fc\u30c8\u30a4\u30d9\u30f3\u30c8<\/h2>\n\n\n\n<p><code>OnChartEvent()<\/code>\u306f\u30c1\u30e3\u30fc\u30c8\u4e0a\u3067\u30e6\u30fc\u30b6\u30fc\u304c\u64cd\u4f5c\u3092\u884c\u3063\u305f\u3068\u304d\u306b\u547c\u3070\u308c\u307e\u3059\u3002\u30dc\u30bf\u30f3\u30af\u30ea\u30c3\u30af\u3001\u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b\u3001\u30de\u30a6\u30b9\u79fb\u52d5\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30c9\u30e9\u30c3\u30b0\u7b49\u3092\u691c\u77e5\u3067\u304d\u307e\u3059\u3002EA\u4e0a\u306bGUI\u30d1\u30cd\u30eb\u3092\u4f5c\u308b\u5834\u5408\u306b\u5fc5\u9808\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnChartEvent\"><code>void OnChartEvent(const int    id,\n                  const long   &amp;lparam,\n                  const double &amp;dparam,\n                  const string &amp;sparam)\n  {\n   \/\/ \u30dc\u30bf\u30f3\u30af\u30ea\u30c3\u30af\n   if(id == CHARTEVENT_OBJECT_CLICK)\n     {\n      if(sparam ==\"btnBuy\")\n        {\n         Print(\"\u8cb7\u3044\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\");\n         \/\/ \u30dc\u30bf\u30f3\u72b6\u614b\u3092\u30ea\u30bb\u30c3\u30c8\n         ObjectSetInteger(0,\"btnBuy\", OBJPROP_STATE, false);\n        }\n      if(sparam ==\"btnSell\")\n        {\n         Print(\"\u58f2\u308a\u30dc\u30bf\u30f3\u304c\u30af\u30ea\u30c3\u30af\u3055\u308c\u307e\u3057\u305f\");\n         ObjectSetInteger(0,\"btnSell\", OBJPROP_STATE, false);\n        }\n     }\n\n   \/\/ \u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b\n   if(id == CHARTEVENT_KEYDOWN)\n     {\n      \/\/ lparam\u306b\u30ad\u30fc\u30b3\u30fc\u30c9\u304c\u5165\u308b\n      if(lparam == 'B')\n         Print(\"B\u30ad\u30fc\u304c\u62bc\u3055\u308c\u307e\u3057\u305f\");\n      if(lparam == 27)  \/\/ ESC\u30ad\u30fc\n         Print(\"ESC\u30ad\u30fc\u304c\u62bc\u3055\u308c\u307e\u3057\u305f\");\n     }\n\n   \/\/ \u30de\u30a6\u30b9\u30af\u30ea\u30c3\u30af\n   if(id == CHARTEVENT_CLICK)\n     {\n      int x = (int)lparam;\n      int y = (int)dparam;\n      Print(\"\u30af\u30ea\u30c3\u30af\u4f4d\u7f6e: x=\", x,\" y=\", y);\n\n      \/\/ \u30d4\u30af\u30bb\u30eb\u5ea7\u6a19\u3092\u6642\u9593\u30fb\u4fa1\u683c\u306b\u5909\u63db\n      datetime time;\n      double   price;\n      int      window;\n      if(ChartXYToTimePrice(0, x, y, window, time, price))\n         Print(\"\u6642\u9593=\", time,\" \u4fa1\u683c=\", price);\n     }\n\n   \/\/ \u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\uff08EventChartCustom()\u3067\u9001\u4fe1\uff09\n   if(id >= CHARTEVENT_CUSTOM)\n     {\n      int customId = id - CHARTEVENT_CUSTOM;\n      Print(\"\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8: id=\", customId,\"\", sparam);\n     }\n  }<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">CHARTEVENT\u5b9a\u6570\u4e00\u89a7<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\">\n<table class=\"has-fixed-layout\"><thead><tr><th>\u5b9a\u6570<\/th><th>\u610f\u5473<\/th><th>lparam<\/th><th>dparam<\/th><th>sparam<\/th><\/tr><\/thead><tbody><tr><td>CHARTEVENT_KEYDOWN<\/td><td>\u30ad\u30fc\u62bc\u4e0b<\/td><td>\u30ad\u30fc\u30b3\u30fc\u30c9<\/td><td>\u7e70\u308a\u8fd4\u3057\u56de\u6570<\/td><td>\u30ad\u30fc\u72b6\u614b<\/td><\/tr><tr><td>CHARTEVENT_MOUSE_MOVE<\/td><td>\u30de\u30a6\u30b9\u79fb\u52d5<\/td><td>X\u5ea7\u6a19<\/td><td>Y\u5ea7\u6a19<\/td><td>\u30d5\u30e9\u30b0<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_CREATE<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u4f5c\u6210<\/td><td>-<\/td><td>-<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_CHANGE<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u5909\u66f4<\/td><td>-<\/td><td>-<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_DELETE<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u524a\u9664<\/td><td>-<\/td><td>-<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_CLICK<\/td><td>\u30c1\u30e3\u30fc\u30c8\u30af\u30ea\u30c3\u30af<\/td><td>X\u5ea7\u6a19<\/td><td>Y\u5ea7\u6a19<\/td><td>-<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_CLICK<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30ea\u30c3\u30af<\/td><td>X\u5ea7\u6a19<\/td><td>Y\u5ea7\u6a19<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_DRAG<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u79fb\u52d5<\/td><td>-<\/td><td>-<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_OBJECT_ENDEDIT<\/td><td>\u30c6\u30ad\u30b9\u30c8\u7de8\u96c6\u5b8c\u4e86<\/td><td>-<\/td><td>-<\/td><td>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d<\/td><\/tr><tr><td>CHARTEVENT_CHART_CHANGE<\/td><td>\u30c1\u30e3\u30fc\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3\u5909\u66f4<\/td><td>-<\/td><td>-<\/td><td>-<\/td><\/tr><tr><td>CHARTEVENT_CUSTOM<\/td><td>\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8<\/td><td>\u4efb\u610f<\/td><td>\u4efb\u610f<\/td><td>\u4efb\u610f<\/td><\/tr><\/tbody><\/table>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u30dc\u30bf\u30f3\u4ed8\u304d\u30d1\u30cd\u30eb\u306e\u4f5c\u6210\u4f8b<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"\u7c21\u6613\u30c8\u30ec\u30fc\u30c9\u30d1\u30cd\u30eb\"><code>#include &lt;TradeTrade.mqh&gt;\nCTrade trade;\n\nvoid CreatePanel()\n  {\n   \/\/ \u8cb7\u3044\u30dc\u30bf\u30f3\n   ObjectCreate(0,\"btnBuy\", OBJ_BUTTON, 0, 0, 0);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_XDISTANCE, 20);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_YDISTANCE, 30);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_XSIZE, 100);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_YSIZE, 30);\n   ObjectSetString(0,\"btnBuy\", OBJPROP_TEXT,\"BUY\");\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_COLOR, clrWhite);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_BGCOLOR, clrDodgerBlue);\n   ObjectSetInteger(0,\"btnBuy\", OBJPROP_FONTSIZE, 10);\n\n   \/\/ \u58f2\u308a\u30dc\u30bf\u30f3\n   ObjectCreate(0,\"btnSell\", OBJ_BUTTON, 0, 0, 0);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_XDISTANCE, 130);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_YDISTANCE, 30);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_XSIZE, 100);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_YSIZE, 30);\n   ObjectSetString(0,\"btnSell\", OBJPROP_TEXT,\"SELL\");\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_COLOR, clrWhite);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_BGCOLOR, clrCrimson);\n   ObjectSetInteger(0,\"btnSell\", OBJPROP_FONTSIZE, 10);\n\n   \/\/ \u5168\u6c7a\u6e08\u30dc\u30bf\u30f3\n   ObjectCreate(0,\"btnCloseAll\", OBJ_BUTTON, 0, 0, 0);\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_XDISTANCE, 240);\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_YDISTANCE, 30);\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_XSIZE, 100);\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_YSIZE, 30);\n   ObjectSetString(0,\"btnCloseAll\", OBJPROP_TEXT,\"CLOSE ALL\");\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_COLOR, clrWhite);\n   ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_BGCOLOR, clrDimGray);\n\n   ChartRedraw();\n  }\n\nvoid OnChartEvent(const int id, const long &amp;lparam,\n                  const double &amp;dparam, const string &amp;sparam)\n  {\n   if(id != CHARTEVENT_OBJECT_CLICK) return;\n\n   if(sparam ==\"btnBuy\")\n     {\n      trade.Buy(0.1, _Symbol);\n      ObjectSetInteger(0,\"btnBuy\", OBJPROP_STATE, false);\n     }\n   else if(sparam ==\"btnSell\")\n     {\n      trade.Sell(0.1, _Symbol);\n      ObjectSetInteger(0,\"btnSell\", OBJPROP_STATE, false);\n     }\n   else if(sparam ==\"btnCloseAll\")\n     {\n      for(int i = PositionsTotal() - 1; i >= 0; i--)\n        {\n         ulong ticket = PositionGetTicket(i);\n         if(PositionGetString(POSITION_SYMBOL) == _Symbol)\n            trade.PositionClose(ticket);\n        }\n      ObjectSetInteger(0,\"btnCloseAll\", OBJPROP_STATE, false);\n     }\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ontrade\">OnTrade\uff1a\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8<\/h2>\n\n\n\n<p><code>OnTrade()<\/code>\u306f\u6ce8\u6587\u306e\u767a\u6ce8\u30fb\u5909\u66f4\u30fb\u524a\u9664\u3001\u30dd\u30b8\u30b7\u30e7\u30f3\u306e\u30aa\u30fc\u30d7\u30f3\u30fb\u30af\u30ed\u30fc\u30ba\u30fb\u5909\u66f4\u306a\u3069\u3001\u53d6\u5f15\u306b\u95a2\u3059\u308b\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306b\u547c\u3070\u308c\u307e\u3059\u3002OnTradeTransaction()\u3088\u308a\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u304c\u3001\u8a73\u7d30\u306a\u60c5\u5831\u306f\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnTrade\"><code>void OnTrade()\n  {\n   \/\/ \u30dd\u30b8\u30b7\u30e7\u30f3\u6570\u306e\u5909\u5316\u3092\u691c\u77e5\n   static int lastPositions = 0;\n   int currentPositions = PositionsTotal();\n\n   if(currentPositions > lastPositions)\n      Print(\"\u65b0\u3057\u3044\u30dd\u30b8\u30b7\u30e7\u30f3\u304c\u30aa\u30fc\u30d7\u30f3\u3057\u307e\u3057\u305f \u73fe\u5728:\", currentPositions);\n   else if(currentPositions < lastPositions)\n      Print(\"\u30dd\u30b8\u30b7\u30e7\u30f3\u304c\u30af\u30ed\u30fc\u30ba\u3055\u308c\u307e\u3057\u305f \u73fe\u5728:\", currentPositions);\n\n   lastPositions = currentPositions;\n\n   \/\/ \u5f85\u6a5f\u6ce8\u6587\u306e\u5909\u5316\u3092\u691c\u77e5\n   static int lastOrders = 0;\n   int currentOrders = OrdersTotal();\n\n   if(currentOrders != lastOrders)\n     {\n      Print(\"\u5f85\u6a5f\u6ce8\u6587\u6570\u304c\u5909\u5316:\", lastOrders,\" \u2192\", currentOrders);\n      lastOrders = currentOrders;\n     }\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-icon_info\"><code>OnTrade()<\/code>\u3068<code>OnTradeTransaction()<\/code>\u306f\u540c\u3058\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8\u306b\u5bfe\u3057\u3066\u4e21\u65b9\u547c\u3070\u308c\u307e\u3059\u3002\u8a73\u7d30\u306a\u7d04\u5b9a\u60c5\u5831\u304c\u5fc5\u8981\u306a\u3089<code>OnTradeTransaction()<\/code>\u3001\u5358\u306b\u30dd\u30b8\u30b7\u30e7\u30f3\u6570\u306e\u5909\u5316\u3060\u3051\u3092\u898b\u308b\u306a\u3089<code>OnTrade()<\/code>\u304c\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"oncalculate\">OnCalculate\uff1a\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u8a08\u7b97<\/h2>\n\n\n\n<p><code>OnCalculate()<\/code>\u306f\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u5c02\u7528\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3067\u3059\u3002\u4fa1\u683c\u30c7\u30fc\u30bf\u304c\u66f4\u65b0\u3055\u308c\u308b\u305f\u3073\u306b\u547c\u3070\u308c\u3001\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30d0\u30c3\u30d5\u30a1\u306b\u5024\u3092\u683c\u7d0d\u3057\u307e\u3059\u30022\u3064\u306e\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnCalculate \u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u4f8b\"><code>\/\/ \u5f62\u5f0f1: OHLCV\u30c7\u30fc\u30bf\u3092\u53d7\u3051\u53d6\u308b\uff08\u4e00\u822c\u7684\uff09\nint OnCalculate(const int rates_total,      \/\/ \u30d0\u30fc\u6570\n                const int prev_calculated,  \/\/ \u524d\u56de\u8a08\u7b97\u6e08\u307f\u30d0\u30fc\u6570\n                const datetime &amp;time[],\n                const double &amp;open[],\n                const double &amp;high[],\n                const double &amp;low[],\n                const double &amp;close[],\n                const long &amp;tick_volume[],\n                const long &amp;volume[],\n                const int &amp;spread[])\n  {\n   \/\/ \u6700\u521d\u306e\u547c\u3073\u51fa\u3057\u3067\u306fprev_calculated=0\uff08\u5168\u30d0\u30fc\u8a08\u7b97\uff09\n   \/\/ 2\u56de\u76ee\u4ee5\u964d\u306fprev_calculated=rates_total-1\uff08\u6700\u65b0\u30d0\u30fc\u306e\u307f\u518d\u8a08\u7b97\uff09\n   int start = (prev_calculated == 0) ? 0 : prev_calculated - 1;\n\n   for(int i = start; i < rates_total; i++)\n     {\n      \/\/ \u3053\u3053\u3067\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30d0\u30c3\u30d5\u30a1\u306b\u5024\u3092\u30bb\u30c3\u30c8\n      \/\/ Buffer[i] = ... ;\n     }\n\n   return rates_total;  \/\/ \u6b21\u56de\u306eprev_calculated\u306b\u6e21\u3055\u308c\u308b\n  }\n\n\/\/ \u5f62\u5f0f2: \u5358\u4e00\u306e\u30c7\u30fc\u30bf\u914d\u5217\u3092\u53d7\u3051\u53d6\u308b\uff08\u4ed6\u306e\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u306b\u9069\u7528\u3059\u308b\u5834\u5408\uff09\nint OnCalculate(const int rates_total,\n                const int prev_calculated,\n                const int begin,            \/\/ \u6709\u52b9\u30c7\u30fc\u30bf\u306e\u958b\u59cb\u4f4d\u7f6e\n                const double &amp;price[])       \/\/ \u9069\u7528\u4fa1\u683c\u30c7\u30fc\u30bf\n  {\n   int start = (prev_calculated == 0) ? begin : prev_calculated - 1;\n\n   for(int i = start; i < rates_total; i++)\n     {\n      \/\/ price[i] \u306f\u9078\u629e\u3055\u308c\u305f\u9069\u7528\u4fa1\u683c\n      \/\/ Buffer[i] = ... ;\n     }\n\n   return rates_total;\n  }<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u30ab\u30b9\u30bf\u30e0SMA\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u306e\u5b8c\u5168\u4f8b<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"\u30ab\u30b9\u30bf\u30e0SMA\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\"><code>#property indicator_chart_window\n#property indicator_buffers 1\n#property indicator_plots   1\n#property indicator_label1\"My SMA\"\n#property indicator_type1   DRAW_LINE\n#property indicator_color1  clrDodgerBlue\n#property indicator_width1  2\n\ninput int Period = 20;\n\ndouble SMA_Buffer[];\n\nint OnInit()\n  {\n   SetIndexBuffer(0, SMA_Buffer, INDICATOR_DATA);\n   PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, Period - 1);\n   IndicatorSetString(INDICATOR_SHORTNAME,\"MySMA(\" + IntegerToString(Period) +\")\");\n   return INIT_SUCCEEDED;\n  }\n\nint OnCalculate(const int rates_total,\n                const int prev_calculated,\n                const int begin,\n                const double &amp;price[])\n  {\n   if(rates_total < Period) return 0;\n\n   int start;\n   if(prev_calculated == 0)\n     {\n      start = begin + Period - 1;\n      \/\/ \u6700\u521d\u306eSMA\u3092\u8a08\u7b97\n      double sum = 0;\n      for(int i = begin; i < start; i++)\n         sum += price[i];\n      sum += price[start];\n      SMA_Buffer[start] = sum \/ Period;\n      start++;\n     }\n   else\n      start = prev_calculated - 1;\n\n   \/\/ \u9010\u6b21\u8a08\u7b97\uff08\u524d\u306eSMA\u304b\u3089\u5dee\u5206\u3067\u8a08\u7b97\u3001\u9ad8\u901f\uff09\n   for(int i = start; i < rates_total; i++)\n      SMA_Buffer[i] = SMA_Buffer[i - 1] + (price[i] - price[i - Period]) \/ Period;\n\n   return rates_total;\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ontester\">OnTester\uff1a\u30d0\u30c3\u30af\u30c6\u30b9\u30c8\u7d42\u4e86\u6642<\/h2>\n\n\n\n<p><code>OnTester()<\/code>\u306f\u30b9\u30c8\u30e9\u30c6\u30b8\u30fc\u30c6\u30b9\u30bf\u30fc\u3067\u306e\u30d0\u30c3\u30af\u30c6\u30b9\u30c8\u304c\u5b8c\u4e86\u3057\u305f\u76f4\u5f8c\u306b\u547c\u3070\u308c\u307e\u3059\u3002\u30ab\u30b9\u30bf\u30e0\u6700\u9069\u5316\u57fa\u6e96\u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnTester\"><code>double OnTester()\n  {\n   \/\/ \u30c6\u30b9\u30c8\u7d50\u679c\u306e\u7d71\u8a08\u3092\u53d6\u5f97\n   double profit     = TesterStatistics(STAT_PROFIT);\n   double maxDD      = TesterStatistics(STAT_EQUITY_DDREL_PERCENT);\n   int    totalTrades = (int)TesterStatistics(STAT_TRADES);\n   double profitFactor = TesterStatistics(STAT_PROFIT_FACTOR);\n   double sharpe     = TesterStatistics(STAT_SHARPE_RATIO);\n\n   Print(\"=== \u30d0\u30c3\u30af\u30c6\u30b9\u30c8\u7d50\u679c ===\");\n   Print(\"\u7d14\u5229\u76ca:\", profit);\n   Print(\"\u6700\u5927DD:\", maxDD,\"%\");\n   Print(\"\u53d6\u5f15\u6570:\", totalTrades);\n   Print(\"PF:\", profitFactor);\n   Print(\"\u30b7\u30e3\u30fc\u30d7:\", sharpe);\n\n   \/\/ \u30ab\u30b9\u30bf\u30e0\u6700\u9069\u5316\u57fa\u6e96\u3092\u8fd4\u3059\n   \/\/ \u4f8b: \u5229\u76ca\u3092DD\u3067\u5272\u3063\u305f\u30ea\u30ab\u30d0\u30ea\u30fc\u30d5\u30a1\u30af\u30bf\u30fc\n   if(maxDD == 0) return 0;\n   if(totalTrades < 30) return 0;  \/\/ \u53d6\u5f15\u6570\u304c\u5c11\u306a\u3059\u304e\u308b\u5834\u5408\u306f0\n\n   double recoveryFactor = profit \/ (maxDD \/ 100.0 * TesterStatistics(STAT_INITIAL_DEPOSIT));\n\n   return recoveryFactor;  \/\/ \u3053\u306e\u5024\u304c\u6700\u5927\u5316\u3055\u308c\u308b\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"is-style-big_icon_point\"><code>OnTester()<\/code>\u306e\u623b\u308a\u5024\u306f\u3001\u6700\u9069\u5316\u3067\u300c\u30ab\u30b9\u30bf\u30e0\u6700\u5927\u300d\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u6700\u9069\u5316\u57fa\u6e96\u306b\u306a\u308a\u307e\u3059\u3002\u30ea\u30ab\u30d0\u30ea\u30fc\u30d5\u30a1\u30af\u30bf\u30fc\u3001\u30b7\u30e3\u30fc\u30d7\u30ec\u30b7\u30aa\u3001\u30d7\u30ed\u30d5\u30a3\u30c3\u30c8\u30d5\u30a1\u30af\u30bf\u30fc\u306a\u3069\u3001\u81ea\u5206\u306e\u91cd\u8996\u3059\u308b\u6307\u6a19\u3092\u8fd4\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ontesterinit\">OnTesterInit \/ OnTesterPass \/ OnTesterDeinit\uff1a\u6700\u9069\u5316\u5236\u5fa1<\/h2>\n\n\n\n<p>\u6700\u9069\u5316\u306e\u524d\u5f8c\u306b\u547c\u3070\u308c\u308b\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3067\u3059\u3002\u6700\u9069\u5316\u306e\u5168\u4f53\u7ba1\u7406\u3001\u5404\u30d1\u30b9\u306e\u7d50\u679c\u53ce\u96c6\u3001\u30d5\u30ec\u30fc\u30e0\u51e6\u7406\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"\u6700\u9069\u5316\u30a4\u30d9\u30f3\u30c8\"><code>\/\/ \u6700\u9069\u5316\u958b\u59cb\u524d\uff08\u30e1\u30a4\u30f3\u30c1\u30e3\u30fc\u30c8\u306eEA\u3067\u547c\u3070\u308c\u308b\uff09\nvoid OnTesterInit()\n  {\n   Print(\"\u6700\u9069\u5316\u3092\u958b\u59cb\u3057\u307e\u3059...\");\n  }\n\n\/\/ \u5404\u6700\u9069\u5316\u30d1\u30b9\u304c\u5b8c\u4e86\u3059\u308b\u305f\u3073\u306b\u547c\u3070\u308c\u308b\nvoid OnTesterPass()\n  {\n   \/\/ FrameFirst() \/ FrameNext() \u3067\u30d5\u30ec\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u53d6\u308b\n   ulong  pass;\n   string name;\n   long   id;\n   double value;\n\n   if(FrameFirst())\n     {\n      FrameInputs(name, pass);\n      FrameNext(pass, name, id, value);\n      PrintFormat(\"\u30d1\u30b9 #%d: %s = %.2f\", pass, name, value);\n     }\n  }\n\n\/\/ \u6700\u9069\u5316\u5b8c\u4e86\u5f8c\nvoid OnTesterDeinit()\n  {\n   Print(\"\u6700\u9069\u5316\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\");\n  }\n\n\/\/ \u30c6\u30b9\u30bf\u30fc\u306eOnTester()\u5185\u3067\u30d5\u30ec\u30fc\u30e0\u3092\u9001\u4fe1\ndouble OnTester()\n  {\n   double result = TesterStatistics(STAT_PROFIT);\n\n   \/\/ \u30d5\u30ec\u30fc\u30e0\u3068\u3057\u3066\u30e1\u30a4\u30f3\u30c1\u30e3\u30fc\u30c8\u306b\u9001\u4fe1\n   FrameAdd(\"Profit\", 1, result, NULL);\n\n   return result;\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"onbookevent\">OnBookEvent\uff1a\u677f\u60c5\u5831\u30a4\u30d9\u30f3\u30c8<\/h2>\n\n\n\n<p><code>OnBookEvent()<\/code>\u306f\u677f\u60c5\u5831\uff08Depth of Market \/ DOM\uff09\u304c\u66f4\u65b0\u3055\u308c\u305f\u3068\u304d\u306b\u547c\u3070\u308c\u307e\u3059\u3002\u4e8b\u524d\u306b<code>MarketBookAdd()<\/code>\u3067\u8cfc\u8aad\u3092\u958b\u59cb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnBookEvent\"><code>int OnInit()\n  {\n   \/\/ \u677f\u60c5\u5831\u306e\u8cfc\u8aad\u3092\u958b\u59cb\n   if(!MarketBookAdd(_Symbol))\n      Print(\"\u677f\u60c5\u5831\u306e\u8cfc\u8aad\u306b\u5931\u6557:\", GetLastError());\n\n   return INIT_SUCCEEDED;\n  }\n\nvoid OnBookEvent(const string &amp;symbol)\n  {\n   if(symbol != _Symbol) return;\n\n   MqlBookInfo book[];\n   if(MarketBookGet(_Symbol, book))\n     {\n      for(int i = 0; i < ArraySize(book); i++)\n        {\n         PrintFormat(\"Type=%s Price=%.5f Volume=%d\",\n                     (book[i].type == BOOK_TYPE_SELL) ?\"SELL\" :\"BUY\",\n                     book[i].price, (int)book[i].volume);\n        }\n     }\n  }\n\nvoid OnDeinit(const int reason)\n  {\n   MarketBookRelease(_Symbol);  \/\/ \u8cfc\u8aad\u89e3\u9664\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"onstart\">OnStart\uff1a\u30b9\u30af\u30ea\u30d7\u30c8\u5b9f\u884c<\/h2>\n\n\n\n<p><code>OnStart()<\/code>\u306f\u30b9\u30af\u30ea\u30d7\u30c8\u5c02\u7528\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u3067\u3059\u3002\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u30c1\u30e3\u30fc\u30c8\u306b\u9069\u7528\u3055\u308c\u308b\u3068<code>OnStart()<\/code>\u304c1\u56de\u3060\u3051\u5b9f\u884c\u3055\u308c\u3001\u5b8c\u4e86\u5f8c\u306b\u81ea\u52d5\u7684\u306b\u524a\u9664\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"OnStart \u30b9\u30af\u30ea\u30d7\u30c8\u4f8b\"><code>\/\/ \u5168\u30dd\u30b8\u30b7\u30e7\u30f3\u4e00\u62ec\u6c7a\u6e08\u30b9\u30af\u30ea\u30d7\u30c8\n#include &lt;TradeTrade.mqh&gt;\n\nvoid OnStart()\n  {\n   CTrade trade;\n   int closed = 0;\n\n   for(int i = PositionsTotal() - 1; i >= 0; i--)\n     {\n      ulong ticket = PositionGetTicket(i);\n      if(ticket == 0) continue;\n\n      if(trade.PositionClose(ticket))\n         closed++;\n      else\n         Print(\"\u6c7a\u6e08\u5931\u6557: #\", ticket,\" Error=\", GetLastError());\n     }\n\n   Print(\"\u6c7a\u6e08\u5b8c\u4e86:\", closed,\"\u30dd\u30b8\u30b7\u30e7\u30f3\");\n   \/\/ \u30b9\u30af\u30ea\u30d7\u30c8\u306f\u3053\u3053\u3067\u81ea\u52d5\u7684\u306b\u7d42\u4e86\u30fb\u524a\u9664\u3055\u308c\u308b\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"custom-events\">\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\uff08EventChartCustom\uff09<\/h2>\n\n\n\n<p><code>EventChartCustom()<\/code>\u3092\u4f7f\u3046\u3068\u3001\u81ea\u5206\u3067\u30a4\u30d9\u30f3\u30c8\u3092\u767a\u751f\u3055\u305b\u3066<code>OnChartEvent()<\/code>\u3067\u53d7\u3051\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002EA\u306e\u7570\u306a\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u9593\u306e\u901a\u4fe1\u3084\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u901a\u77e5\u306b\u4f7f\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\" data-file=\"\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\"><code>\/\/ \u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8ID\u306e\u5b9a\u7fa9\n#define EVENT_TRADE_OPENED   0\n#define EVENT_TRADE_CLOSED   1\n#define EVENT_SL_HIT         2\n\n\/\/ \u30a4\u30d9\u30f3\u30c8\u3092\u767a\u706b\nvoid NotifyTradeOpened(ulong ticket, double price)\n  {\n   EventChartCustom(0,                    \/\/ \u30c1\u30e3\u30fc\u30c8ID\uff080=\u81ea\u5206\u306e\u30c1\u30e3\u30fc\u30c8\uff09\n                    EVENT_TRADE_OPENED,    \/\/ \u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8ID\n                    (long)ticket,          \/\/ lparam\n                    price,                 \/\/ dparam\"Trade Opened\"         \/\/ sparam\n                    );\n  }\n\n\/\/ \u30a4\u30d9\u30f3\u30c8\u3092\u53d7\u4fe1\nvoid OnChartEvent(const int id, const long &amp;lparam,\n                  const double &amp;dparam, const string &amp;sparam)\n  {\n   if(id == CHARTEVENT_CUSTOM + EVENT_TRADE_OPENED)\n     {\n      Print(\"\u53d6\u5f15\u30aa\u30fc\u30d7\u30f3\u901a\u77e5: ticket=\", lparam,\" price=\", dparam);\n      \/\/ \u3053\u3053\u3067GUI\u66f4\u65b0\u3001\u30ed\u30b0\u8a18\u9332\u7b49\u3092\u884c\u3046\n     }\n   else if(id == CHARTEVENT_CUSTOM + EVENT_TRADE_CLOSED)\n     {\n      Print(\"\u53d6\u5f15\u30af\u30ed\u30fc\u30ba\u901a\u77e5: ticket=\", lparam,\" PL=\", dparam);\n     }\n  }<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"event-flow\">\u30a4\u30d9\u30f3\u30c8\u306e\u5b9f\u884c\u9806\u5e8f<\/h2>\n\n\n\n<p>MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306f\u4ee5\u4e0b\u306e\u512a\u5148\u9806\u4f4d\u3067\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u540c\u6642\u306b\u8907\u6570\u306e\u30a4\u30d9\u30f3\u30c8\u304c\u30ad\u30e5\u30fc\u306b\u5165\u3063\u305f\u5834\u5408\u3001\u3053\u306e\u9806\u5e8f\u3067\u51e6\u7406\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>OnInit()<\/strong>\uff1a\u6700\u521d\u306b1\u56de\u3060\u3051<\/li>\n\n\n<li><strong>OnTick() \/ OnCalculate()<\/strong>\uff1a\u6700\u512a\u5148\u3067\u51e6\u7406<\/li>\n\n\n<li><strong>OnTimer()<\/strong>\uff1a\u30c6\u30a3\u30c3\u30af\u30a4\u30d9\u30f3\u30c8\u306e\u6b21<\/li>\n\n\n<li><strong>OnTrade() \/ OnTradeTransaction()<\/strong>\uff1a\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8<\/li>\n\n\n<li><strong>OnChartEvent()<\/strong>\uff1a\u30e6\u30fc\u30b6\u30fc\u64cd\u4f5c\u30a4\u30d9\u30f3\u30c8<\/li>\n\n\n<li><strong>OnBookEvent()<\/strong>\uff1a\u677f\u60c5\u5831\u30a4\u30d9\u30f3\u30c8<\/li>\n\n\n<li><strong>OnDeinit()<\/strong>\uff1a\u6700\u5f8c\u306b1\u56de\u3060\u3051<\/li>\n\n<\/ol>\n\n\n\n<p class=\"is-style-big_icon_caution\">\u3059\u3079\u3066\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306f<strong>\u30b7\u30f3\u30b0\u30eb\u30b9\u30ec\u30c3\u30c9<\/strong>\u3067\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<code>OnTick()<\/code>\u306e\u51e6\u7406\u4e2d\u306b<code>OnTimer()<\/code>\u304c\u547c\u3070\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002<code>OnTick()<\/code>\u306e\u51e6\u7406\u306b\u6642\u9593\u304c\u304b\u304b\u308b\u3068\u3001\u305d\u306e\u9593\u306b\u767a\u751f\u3057\u305f\u30bf\u30a4\u30de\u30fc\u30a4\u30d9\u30f3\u30c8\u3084\u30c1\u30e3\u30fc\u30c8\u30a4\u30d9\u30f3\u30c8\u306f\u30ad\u30e5\u30fc\u306b\u6e9c\u307e\u308a\u3001\u9806\u756a\u306b\u51e6\u7406\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30d7\u30ed\u304c\u958b\u767a\u3057\u305fEA\u3092\u304a\u63a2\u3057\u306e\u65b9\u306f \u2192 <a href=\"https:\/\/sys-tre.com\" target=\"_blank\" rel=\"noopener noreferrer\">\u30b7\u30b9\u30c8\u30ec.COM EA\u4e00\u89a7<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p>MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306fMQL4\u3088\u308a\u8c4a\u5bcc\u3067\u3001OnTrade()\u3068OnTradeTransaction()\u3067\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8\u3092\u7d30\u304b\u304f\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002OnTimer()\u306fEventSetTimer()\u3067\u6709\u52b9\u5316\u3057\u3001\u5fc5\u305aOnDeinit()\u3067EventKillTimer()\u3092\u547c\u3073\u307e\u3057\u3087\u3046\u3002OnChartEvent()\u306f\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\u3092\u4f7f\u3063\u3066EA\u9593\u901a\u4fe1\u3082\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u3092\u610f\u8b58\u3057\u3066\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5b9f\u969b\u306b\u8a66\u3057\u305f\u3068\u3053\u308d\u3001OnTimer()\u3067RefreshRates()\u3092\u547c\u3093\u3067\u304b\u3089OrderSend()\u3059\u308b\u3068\u3001\u30c6\u30a3\u30c3\u30af\u5f85\u3061\u306e\u9045\u5ef6\u306a\u304f\u5b9a\u671f\u767a\u6ce8\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u3088\u304f\u3042\u308b\u8cea\u554f<\/h2>\n\n\n\n<div class=\"swell-block-faq\">\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306e\u7a2e\u985e\u306f\uff1f<\/h3><div class=\"faq_a\"><p>OnInit()\/OnDeinit()\/OnTick()\u306fMQL4\u3068\u540c\u3058\u3067\u3059\u304c\u3001MQL5\u3067\u306fOnTrade()\uff08\u53d6\u5f15\u30a4\u30d9\u30f3\u30c8\uff09\u3001OnTradeTransaction()\uff08\u53d6\u5f15\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u8a73\u7d30\uff09\u3001OnBookEvent()\uff08\u677f\u60c5\u5831\uff09\u3001OnCalculate()\uff08\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u7528\uff09\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<\/p><\/div><\/div>\n\n\n\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">OnTrade()\u3068OnTradeTransaction()\u306e\u9055\u3044\u306f\uff1f<\/h3><div class=\"faq_a\"><p>OnTrade()\u306f\u30dd\u30b8\u30b7\u30e7\u30f3\u5909\u5316\u6642\u306b\u547c\u3070\u308c\u3001OnTradeTransaction()\u306f\u500b\u3005\u306e\u53d6\u5f15\u64cd\u4f5c\uff08\u6ce8\u6587\u9001\u4fe1\u3001\u7d04\u5b9a\u7b49\uff09\u3054\u3068\u306b\u8a73\u7d30\u60c5\u5831\u4ed8\u304d\u3067\u547c\u3070\u308c\u307e\u3059\u3002\u3088\u308a\u8a73\u7d30\u306a\u5236\u5fa1\u306b\u306fOnTradeTransaction()\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p><\/div><\/div>\n\n\n\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">MQL5\u306eOnTick()\u306e\u6ce8\u610f\u70b9\u306f\uff1f<\/h3><div class=\"faq_a\"><p>MQL5\u306eOnTick()\u306fMQL4\u3068\u540c\u69d8\u3067\u3059\u304c\u3001\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u52d5\u4f5c\u3059\u308b\u305f\u3081\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u306fOnInit()\u3067\u53d6\u5f97\u30fb\u4fdd\u6301\u3057\u3001OnTick()\u5185\u3067\u306eIndicatorCreate()\u306f\u907f\u3051\u307e\u3057\u3087\u3046\u3002<\/p><\/div><\/div>\n\n\n\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">OnTimer()\u306e\u9ad8\u7cbe\u5ea6\u7248\u306f\u3042\u308a\u307e\u3059\u304b\uff1f<\/h3><div class=\"faq_a\"><p>EventSetMillisecondTimer()\u3067\u30df\u30ea\u79d2\u5358\u4f4d\u306e\u30bf\u30a4\u30de\u30fc\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u3002\u9ad8\u983b\u5ea6\u306e\u76e3\u8996\u51e6\u7406\u3084\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306e\u66f4\u65b0\u306b\u4f7f\u3044\u307e\u3059\u3002CPU\u8ca0\u8377\u304c\u9ad8\u304f\u306a\u308b\u305f\u3081\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3001OnDeinit()\u3067EventKillTimer()\u3092\u547c\u3076\u306e\u3092\u5fd8\u308c\u305a\u306b\u3002<\/p><\/div><\/div>\n\n\n\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">OnChartEvent()\u306fMQL4\u3068\u540c\u3058\u3067\u3059\u304b\uff1f<\/h3><div class=\"faq_a\"><p>\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u306f\u540c\u3058\u3067\u3059\u304c\u3001MQL5\u3067\u306f\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8(CHARTEVENT_CUSTOM)\u306e\u7bc4\u56f2\u304c\u5e83\u304c\u308a\u3001EA\u9593\u901a\u4fe1\u3084\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u9023\u643a\u304c\u3088\u308a\u67d4\u8edf\u306b\u884c\u3048\u307e\u3059\u3002EventChartCustom()\u3067\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\u3092\u4ed6\u306eEA\u306b\u9001\u4fe1\u3067\u304d\u307e\u3059\u3002<\/p><\/div><\/div>\n\n\n\n<div class=\"swell-block-faq__item\"><h3 class=\"faq_q\">OnDeinit()\u3067\u5fc5\u305a\u5b9f\u884c\u3059\u3079\u304d\u51e6\u7406\u306f\uff1f<\/h3><div class=\"faq_a\"><p>IndicatorRelease()\u3067\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u3092\u89e3\u653e\u3001EventKillTimer()\u3067\u30bf\u30a4\u30de\u30fc\u3092\u505c\u6b62\u3001ObjectsDeleteAll()\u3067\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u524a\u9664\u3001FileClose()\u3067\u30d5\u30a1\u30a4\u30eb\u30cf\u30f3\u30c9\u30eb\u3092\u9589\u3058\u308b\u3053\u3068\u304c\u5fc5\u9808\u3067\u3059\u3002\u30ea\u30bd\u30fc\u30b9\u30ea\u30fc\u30af\u3092\u9632\u3050\u305f\u3081\u306b\u5fb9\u5e95\u3057\u307e\u3057\u3087\u3046\u3002<\/p><\/div><\/div>\n<\/div>\n\n\n<div class=\"p-blogParts post_content\" data-partsID=\"59754\">\n\n  <style>\n   \n    .systrade-horizontal-banner {\n      width: 100%;\n      max-width: 800px;\n      margin: 20px auto;\n      background: linear-gradient(135deg, #F5F5F7, #E8E9EB);\n      border-radius: 12px;\n      overflow: hidden;\n      position: relative;\n      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n      font-family: 'Noto Sans JP', sans-serif;\n      box-shadow: \n        0 10px 20px rgba(0, 0, 0, 0.1),\n        0 0 0 1px rgba(0, 0, 0, 0.03) inset;\n      display: flex;\n      flex-direction: row;\n      align-items: center;\n      height: auto;\n      min-height: 120px;\n      box-sizing: border-box;\n    }\n\n    .systrade-horizontal-banner::before {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background: \n        radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.8) 0%, transparent 50%),\n        radial-gradient(circle at 100% 100%, rgba(255, 107, 0, 0.05) 0%, transparent 50%);\n      z-index: 1;\n    }\n\n    .systrade-horizontal-banner::after {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      height: 2px;\n      background: linear-gradient(90deg, \n        transparent,\n        #FF6B00,\n        transparent\n      );\n      animation: borderGlow 3s ease-in-out infinite;\n      z-index: 2;\n    }\n\n    @keyframes borderGlow {\n      0%, 100% { opacity: 0.5; }\n      50% { opacity: 1; }\n    }\n\n    .systrade-horizontal-banner:hover {\n      transform: translateY(-2px);\n      box-shadow: \n        0 12px 25px rgba(0, 0, 0, 0.15),\n        0 0 0 1px rgba(0, 0, 0, 0.05) inset;\n    }\n\n    .systrade-horizontal-anchor {\n      display: flex;\n      width: 100%;\n      text-decoration: none;\n      color: inherit;\n      position: relative;\n      z-index: 2;\n      flex-wrap: wrap;\n    }\n\n    .systrade-horizontal-header {\n      width: 30%;\n      min-width: 150px;\n      position: relative;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n      padding: 12px;\n      background: rgba(255, 255, 255, 0.5);\n      border-radius: 10px;\n      border: 1px solid rgba(255, 255, 255, 0.8);\n      overflow: hidden;\n      backdrop-filter: blur(10px);\n      -webkit-backdrop-filter: blur(10px);\n      margin: 10px;\n      height: calc(100% - 20px);\n    }\n\n    .systrade-horizontal-header::before {\n      content: '';\n      position: absolute;\n      top: -50%;\n      left: -50%;\n      width: 200%;\n      height: 200%;\n      background: linear-gradient(\n        45deg,\n        transparent,\n        rgba(255, 255, 255, 0.4),\n        transparent\n      );\n      transform: rotate(45deg);\n      animation: headerGlow 4s ease-in-out infinite;\n    }\n\n    @keyframes headerGlow {\n      0% { transform: rotate(45deg) translateX(-100%); }\n      50% { transform: rotate(45deg) translateX(100%); }\n      100% { transform: rotate(45deg) translateX(100%); }\n    }\n\n    .systrade-horizontal-inner {\n      width: 100%;\n      position: relative;\n      z-index: 2;\n      text-align: center;\n    }\n\n    .systrade-horizontal-image {\n      height: 30px;\n      width: auto;\n      margin: 8px auto;\n      display: block;\n      filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));\n    }\n\n    .systrade-horizontal-title {\n      color: #333;\n      font-size: 0.9em;\n      font-weight: 900;\n      white-space: nowrap;\n      background: linear-gradient(90deg, #333, #FF6B00, #333);\n      background-size: 200% auto;\n      -webkit-background-clip: text;\n      -webkit-text-fill-color: transparent;\n      animation: titleFlow 3s linear infinite;\n      padding: 4px 0;\n    }\n\n    @keyframes titleFlow {\n      0% { background-position: 0% center; }\n      100% { background-position: 200% center; }\n    }\n\n    .systrade-horizontal-content {\n      display: flex;\n      flex: 1;\n      flex-direction: column;\n      justify-content: space-between;\n      padding: 12px;\n    }\n\n    .systrade-horizontal-list {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 8px;\n      margin-bottom: 10px;\n    }\n\n    .systrade-horizontal-item {\n      background: rgba(255, 255, 255, 0.7);\n      padding: 8px 6px;\n      border-radius: 8px;\n      border: 1px solid rgba(255, 255, 255, 0.9);\n      text-align: center;\n      transition: all 0.3s ease;\n      position: relative;\n      overflow: hidden;\n    }\n\n    .systrade-horizontal-item:hover {\n      transform: translateY(-2px);\n      background: rgba(255, 107, 0, 0.05);\n      border-color: rgba(255, 107, 0, 0.2);\n      box-shadow: 0 4px 12px rgba(255, 107, 0, 0.1);\n    }\n\n    .systrade-horizontal-item::after {\n      content: '';\n      position: absolute;\n      top: -50%;\n      left: -50%;\n      width: 200%;\n      height: 200%;\n      background: linear-gradient(\n        45deg,\n        transparent,\n        rgba(255, 107, 0, 0.1),\n        transparent\n      );\n      transform: rotate(45deg);\n      animation: itemGlow 3s ease-in-out infinite;\n      opacity: 0;\n    }\n\n    .systrade-horizontal-item:hover::after {\n      opacity: 1;\n    }\n\n    @keyframes itemGlow {\n      0% { transform: rotate(45deg) translateX(-100%); }\n      100% { transform: rotate(45deg) translateX(100%); }\n    }\n\n    .systrade-horizontal-desc {\n      color: #333;\n      font-size: 0.7em;\n      font-weight: 700;\n      line-height: 1.3;\n      position: relative;\n      z-index: 1;\n    }\n\n    .systrade-horizontal-button {\n      background: linear-gradient(90deg, #FF6B00, #FF8534);\n      color: white;\n      padding: 10px;\n      border-radius: 8px;\n      font-weight: 900;\n      font-size: 0.85em;\n      text-align: center;\n      position: relative;\n      overflow: hidden;\n      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n      transition: all 0.3s ease;\n      margin-top: auto;\n    }\n\n    .systrade-horizontal-button::before {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background: linear-gradient(90deg, \n        transparent,\n        rgba(255, 255, 255, 0.2),\n        transparent\n      );\n      transform: translateX(-100%);\n      animation: buttonGlow 3s ease-in-out infinite;\n    }\n\n    @keyframes buttonGlow {\n      0% { transform: translateX(-100%); }\n      50% { transform: translateX(100%); }\n      100% { transform: translateX(100%); }\n    }\n\n    .systrade-horizontal-button:hover {\n      transform: translateY(-2px);\n      box-shadow: 0 4px 12px rgba(255, 107, 0, 0.2);\n    }\n\n    \/* Responsive breakpoints *\/\n    @media (max-width: 768px) {\n      .systrade-horizontal-banner {\n        min-height: auto;\n      }\n      \n      .systrade-horizontal-header {\n        min-width: 120px;\n        padding: 8px;\n      }\n      \n      .systrade-horizontal-image {\n        height: 25px;\n      }\n      \n      .systrade-horizontal-title {\n        font-size: 0.8em;\n      }\n      \n      .systrade-horizontal-desc {\n        font-size: 0.65em;\n      }\n      \n      .systrade-horizontal-button {\n        font-size: 0.8em;\n        padding: 8px;\n      }\n    }\n    \n    @media (max-width: 600px) {\n      .systrade-horizontal-banner {\n        flex-direction: column;\n        min-height: auto;\n      }\n      \n      .systrade-horizontal-header {\n        width: calc(100% - 20px);\n        min-width: auto;\n        margin: 10px;\n      }\n      \n      .systrade-horizontal-content {\n        width: 100%;\n      }\n      \n      .systrade-horizontal-image {\n        height: 30px;\n        margin: 5px auto;\n      }\n      \n      .systrade-horizontal-title {\n        font-size: 0.85em;\n      }\n      \n      .systrade-horizontal-list {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 6px;\n        margin-bottom: 8px;\n      }\n      \n      .systrade-horizontal-item {\n        padding: 6px 4px;\n      }\n      \n      .systrade-horizontal-desc {\n        font-size: 0.65em;\n      }\n      \n      .systrade-horizontal-button {\n        margin-top: 5px;\n      }\n    }\n\n    @media (max-width: 400px) {\n      .systrade-horizontal-list {\n        grid-template-columns: 1fr;\n      }\n      \n      .systrade-horizontal-item {\n        padding: 8px 6px;\n      }\n      \n      .systrade-horizontal-desc {\n        font-size: 0.7em;\n      }\n    }\n    \n    \/* Print media query *\/\n    @media print {\n      .systrade-horizontal-banner {\n        box-shadow: none;\n        border: 1px solid #ccc;\n      }\n      \n      .systrade-horizontal-banner::before,\n      .systrade-horizontal-banner::after,\n      .systrade-horizontal-header::before,\n      .systrade-horizontal-item::after,\n      .systrade-horizontal-button::before {\n        display: none;\n      }\n      \n      .systrade-horizontal-button {\n        background: #FF6B00;\n        text-shadow: none;\n      }\n    }\n  <\/style>\n\n  <div class=\"systrade-horizontal-banner\">\n    <a href=\"https:\/\/sys-tre.com\/\" class=\"systrade-horizontal-anchor\">\n      <div class=\"systrade-horizontal-header\">\n        <div class=\"systrade-horizontal-inner\">\n          <div class=\"systrade-horizontal-title\">FX\u81ea\u52d5\u58f2\u8cb7\uff08EA\uff09\u306a\u3089\uff01<\/div>\n          <img decoding=\"async\" src=\"https:\/\/sys-tre.com\/broker\/wp-content\/uploads\/2025\/01\/\u30b7\u30b9\u30c8\u30ec.COM_B-2.png\" alt=\"\u30b7\u30b9\u30c8\u30ec.COM \u516c\u5f0fCTA\u30ed\u30b4\" class=\"systrade-horizontal-image\">\n        <\/div>\n      <\/div>\n\n      <div class=\"systrade-horizontal-content\">\n        <div class=\"systrade-horizontal-list\">\n          <div class=\"systrade-horizontal-item\">\n            <div class=\"systrade-horizontal-desc\">\u5b9f\u7e3e\u306e\u3042\u308bEA\u304c\u7121\u6599\u3067\u4f7f\u3048\u308b\uff01<\/div>\n          <\/div>\n          <div class=\"systrade-horizontal-item\">\n            <div class=\"systrade-horizontal-desc\">\u6709\u6599\u7248\u3067\u53e3\u5ea7\u5236\u9650\u306a\u3057\uff01<\/div>\n          <\/div>\n          <div class=\"systrade-horizontal-item\">\n            <div class=\"systrade-horizontal-desc\">\u5168\u5546\u54c1\u30d5\u30a9\u30ef\u30fc\u30c9\u30c6\u30b9\u30c8\u516c\u958b\u4e2d\uff01<\/div>\n          <\/div>\n          <div class=\"systrade-horizontal-item\">\n            <div class=\"systrade-horizontal-desc\">\u521d\u5fc3\u8005\u3067\u3082\u5b89\u5fc3\u3057\u3066\u3054\u5229\u7528\u53ef\u80fd\uff01<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"systrade-horizontal-button\">\n          \u4eca\u3059\u3050\u7121\u6599\u3067\u30b7\u30b9\u30c6\u30e0\u30c8\u30ec\u30fc\u30c9\u3092\u59cb\u3081\u308b\uff01\n        <\/div>\n      <\/div>\n    <\/a>\n  <\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">MQL5\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 \u95a2\u9023\u8a18\u4e8b<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sys-tre.com\/forexguide\/mql5-trade-functions\/\">MQL5 \u53d6\u5f15\u95a2\u6570<\/a>\uff1aCTrade\u30fbOrderSend<\/li>\n<li><a href=\"https:\/\/sys-tre.com\/forexguide\/mql5-indicator-functions\/\">MQL5 \u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u95a2\u6570<\/a>\uff1aiMA\u30fbCopyBuffer<\/li>\n<li>MQL5 \u53e3\u5ea7\u30fb\u30de\u30fc\u30b1\u30c3\u30c8\u60c5\u5831\uff1a\u8a3c\u62e0\u91d1\u8a08\u7b97<\/li>\n<li><a href=\"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/\">MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9<\/a>\uff1aOnTrade\u30fbOnTimer<\/li>\n<li><a href=\"https:\/\/sys-tre.com\/forexguide\/mql5-error-guide\/\">MQL5 \u30a8\u30e9\u30fc\u30ac\u30a4\u30c9<\/a>\uff1a\u30c7\u30d0\u30c3\u30b0\u624b\u6cd5<\/li>\n<li>MQL5 \u6642\u9593\u30fb\u65e5\u4ed8\u95a2\u6570\uff1aMqlDateTime<\/li>\n<li><a href=\"https:\/\/sys-tre.com\/forexguide\/ea-howto\/\">EA\u59cb\u3081\u65b9\u30ac\u30a4\u30c9<\/a>\uff1aMT5\u3078\u306eEA\u8a2d\u5b9a\u624b\u9806<\/li>\n<\/ul>\n\n\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\": [\n    {\"@type\":\"Question\",\"name\":\"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306e\u7a2e\u985e\u306f\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"OnInit()\/OnDeinit()\/OnTick()\u306b\u52a0\u3048\u3001OnTrade()\u3001OnTradeTransaction()\u3001OnBookEvent()\u3001OnCalculate()\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\"}},\n    {\"@type\":\"Question\",\"name\":\"OnTrade()\u3068OnTradeTransaction()\u306e\u9055\u3044\u306f\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"OnTrade()\u306f\u30dd\u30b8\u30b7\u30e7\u30f3\u5909\u5316\u6642\u3001OnTradeTransaction()\u306f\u5404\u53d6\u5f15\u64cd\u4f5c\u3054\u3068\u306b\u8a73\u7d30\u60c5\u5831\u4ed8\u304d\u3067\u547c\u3070\u308c\u307e\u3059\u3002\u8a73\u7d30\u306a\u5236\u5fa1\u306b\u306fOnTradeTransaction()\u3092\u4f7f\u3044\u307e\u3059\u3002\"}},\n    {\"@type\":\"Question\",\"name\":\"MQL5\u306eOnTick()\u306e\u6ce8\u610f\u70b9\u306f\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u306e\u305f\u3081\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u30a2\u30af\u30bb\u30b9\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30cf\u30f3\u30c9\u30eb\u306fOnInit()\u3067\u53d6\u5f97\u30fb\u4fdd\u6301\u3057\u307e\u3059\u3002\"}},\n    {\"@type\":\"Question\",\"name\":\"OnTimer()\u306e\u9ad8\u7cbe\u5ea6\u7248\u306f\u3042\u308a\u307e\u3059\u304b\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"EventSetMillisecondTimer()\u3067\u30df\u30ea\u79d2\u7cbe\u5ea6\u306e\u30bf\u30a4\u30de\u30fc\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u3002OnDeinit()\u3067EventKillTimer()\u3092\u547c\u3076\u306e\u3092\u5fd8\u308c\u305a\u306b\u3002\"}},\n    {\"@type\":\"Question\",\"name\":\"OnChartEvent()\u306fMQL4\u3068\u540c\u3058\u3067\u3059\u304b\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"\u57fa\u672c\u306f\u540c\u3058\u3067\u3059\u304c\u3001CHARTEVENT_CUSTOM\u306e\u7bc4\u56f2\u304c\u5e83\u304c\u308aEA\u9593\u901a\u4fe1\u304c\u53ef\u80fd\u3067\u3059\u3002EventChartCustom()\u3067\u30ab\u30b9\u30bf\u30e0\u30a4\u30d9\u30f3\u30c8\u3092\u9001\u4fe1\u3067\u304d\u307e\u3059\u3002\"}},\n    {\"@type\":\"Question\",\"name\":\"OnDeinit()\u3067\u5fc5\u305a\u5b9f\u884c\u3059\u3079\u304d\u51e6\u7406\u306f\uff1f\",\"acceptedAnswer\": {\"@type\":\"Answer\",\"text\":\"IndicatorRelease()\u3067\u30cf\u30f3\u30c9\u30eb\u89e3\u653e\u3001EventKillTimer()\u3067\u30bf\u30a4\u30de\u30fc\u505c\u6b62\u3001ObjectsDeleteAll()\u3067\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u524a\u9664\u3001FileClose()\u3067\u30d5\u30a1\u30a4\u30eb\u30af\u30ed\u30fc\u30ba\u304c\u5fc5\u9808\u3067\u3059\u3002\"}}\n]}\n<\/script>\n\n\n\n\n<address class=\"author author-box\">\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\uff5c200\u7a2e\u985e\u4ee5\u4e0a\u306eEA\u3092\u30d5\u30a9\u30ef\u30fc\u30c9\u8a08\u6e2c\u3059\u308b\u904b\u55b63\u5e74\u306e\u691c\u8a3c\u30e1\u30c7\u30a3\u30a2\u3002MetaTrader (MT4\/MT5) \u3092\u5b9f\u904b\u7528\u3057\u3066\u304d\u305f\u7de8\u96c6\u90e8\u304c\u76e3\u4fee\u30fb\u57f7\u7b46\u3057\u3066\u3044\u307e\u3059\u3002<\/address>\n","protected":false},"excerpt":{"rendered":"<p>MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u95a2\u6570\u3092\u5b8c\u5168\u89e3\u8aac\u3002OnInit\u30fbOnDeinit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u30fbOnTrade\u30fbOnTester\u30fbOnBookEvent\u306a\u3069\u3001EA\u30fb\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u30fb\u30b9\u30af\u30ea [&hellip;]<\/p>\n","protected":false},"author":686,"featured_media":71194,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[301],"tags":[303],"class_list":["post-65657","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mql-reference","tag-mql5"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade<\/title>\n<meta name=\"description\" content=\"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade\" \/>\n<meta property=\"og:description\" content=\"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex Guide\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-14T18:27:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-14T04:21:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/systre_COM\" \/>\n<meta name=\"twitter:site\" content=\"@systre_COM\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/\"},\"author\":{\"name\":\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#\\\/schema\\\/person\\\/6d4b91f175c62b272d48ff74ffe237c1\"},\"headline\":\"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u5b8c\u5168\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u5168\u89e3\u8aac\",\"datePublished\":\"2026-03-14T18:27:04+00:00\",\"dateModified\":\"2026-04-14T04:21:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/\"},\"wordCount\":238,\"publisher\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/forexguide-mqlref-eyecatch.png\",\"keywords\":[\"MQL5\"],\"articleSection\":[\"MQL\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/\",\"name\":\"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/forexguide-mqlref-eyecatch.png\",\"datePublished\":\"2026-03-14T18:27:04+00:00\",\"dateModified\":\"2026-04-14T04:21:59+00:00\",\"description\":\"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/forexguide-mqlref-eyecatch.png\",\"contentUrl\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/forexguide-mqlref-eyecatch.png\",\"width\":2400,\"height\":1260},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/mql5-event-handlers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MQL\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\",\"item\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/category\\\/mql-reference\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u5b8c\u5168\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u5168\u89e3\u8aac\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#website\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/\",\"name\":\"\u30b7\u30b9\u30c8\u30ec.COM\",\"description\":\"\u30b7\u30b9\u30c8\u30ec.COM ForexGuide\uff5cFX\u81ea\u52d5\u58f2\u8cb7\u306b\u95a2\u3059\u308b\u304a\u5f79\u7acb\u3061\u60c5\u5831\u3092\u66f4\u65b0\u4e2d\uff01\",\"publisher\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#organization\"},\"alternateName\":\"\u30b7\u30b9\u30c8\u30ecCOM\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#organization\",\"name\":\"\u30b7\u30b9\u30c8\u30ec.COM\",\"alternateName\":\"\u30b7\u30b9\u30c8\u30ecCOM\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/\u30b7\u30b9\u30c8\u30ec.COM_\u30ed\u30b4-1.svg\",\"contentUrl\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/\u30b7\u30b9\u30c8\u30ec.COM_\u30ed\u30b4-1.svg\",\"width\":500,\"height\":500,\"caption\":\"\u30b7\u30b9\u30c8\u30ec.COM\"},\"image\":{\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/systre_COM\",\"https:\\\/\\\/www.youtube.com\\\/@systre_com\",\"https:\\\/\\\/www.facebook.com\\\/people\\\/%E3%82%B7%E3%82%B9%E3%83%88%E3%83%ACcom\\\/61587699411751\\\/\",\"https:\\\/\\\/www.instagram.com\\\/systre_com\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@sys_tre.com\"],\"description\":\"FX\u81ea\u52d5\u58f2\u8cb7EA\uff08Expert Advisor\uff09200\u672c\u4ee5\u4e0a\u3092\u7121\u6599\u63d0\u4f9b\u3059\u308b\u30de\u30fc\u30b1\u30c3\u30c8\u30d7\u30ec\u30a4\u30b9\u3002\u5168EA\u306e\u30d5\u30a9\u30ef\u30fc\u30c9\u30c6\u30b9\u30c8\u30fb\u30ea\u30a2\u30eb\u53e3\u5ea7\u904b\u7528\u30c7\u30fc\u30bf\u3092\u516c\u958b\u3002MT4\\\/MT5\u5bfe\u5fdc\u3002\",\"foundingDate\":\"2023\",\"knowsAbout\":[\"FX\u81ea\u52d5\u58f2\u8cb7\",\"Expert Advisor\",\"MetaTrader\",\"\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790\",\"\u30b7\u30b9\u30c6\u30e0\u30c8\u30ec\u30fc\u30c9\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"contactType\":\"customer service\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/contact-us\\\/\",\"availableLanguage\":[\"Japanese\",\"English\"]},\"legalName\":\"Attempia Ltd\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/#\\\/schema\\\/person\\\/6d4b91f175c62b272d48ff74ffe237c1\",\"name\":\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g\",\"caption\":\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\"},\"description\":\"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\u306f\u3001FX\u81ea\u52d5\u58f2\u8cb7\uff08EA\uff09\u3068\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790\u3092\u5c02\u9580\u3068\u3059\u308b\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30e1\u30c7\u30a3\u30a2\u300c\u30b7\u30b9\u30c8\u30ec.COM\u300d\u306e\u7de8\u96c6\u30c1\u30fc\u30e0\u3067\u3059\u3002200\u672c\u4ee5\u4e0a\u306eEA\u306e\u30d5\u30a9\u30ef\u30fc\u30c9\u30c6\u30b9\u30c8\u7d50\u679c\u3092\u516c\u958b\u3057\u3001\u5b9f\u969b\u306e\u904b\u7528\u30c7\u30fc\u30bf\u306b\u57fa\u3065\u3044\u305f\u5ba2\u89b3\u7684\u306a\u60c5\u5831\u3092\u767a\u4fe1\u3057\u3066\u3044\u307e\u3059\u3002\u8a18\u4e8b\u306e\u57f7\u7b46\u30fb\u76e3\u4fee\u306fMetaTrader\uff08MT4\\\/MT5\uff09\u3067\u306e\u5b9f\u904b\u7528\u7d4c\u9a13\u3092\u6301\u3064\u30b9\u30bf\u30c3\u30d5\u304c\u62c5\u5f53\u3002\",\"sameAs\":[\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/about\\\/\",\"https:\\\/\\\/x.com\\\/systre_COM\"],\"jobTitle\":\"FX\u81ea\u52d5\u58f2\u8cb7\u30fb\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790 \u7de8\u96c6\u30c1\u30fc\u30e0\",\"knowsAbout\":[\"FX\u81ea\u52d5\u58f2\u8cb7\",\"Expert Advisor (EA)\",\"\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790\",\"MetaTrader 4\",\"MetaTrader 5\",\"MQL4\",\"MQL5\",\"\u30ea\u30b9\u30af\u7ba1\u7406\",\"\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u30c8\u30ec\u30fc\u30c9\"],\"url\":\"https:\\\/\\\/sys-tre.com\\\/forexguide\\\/about\\\/\",\"worksFor\":{\"@type\":\"Organization\",\"name\":\"\u30b7\u30b9\u30c8\u30ec.COM\",\"url\":\"https:\\\/\\\/sys-tre.com\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade","description":"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/","og_locale":"ja_JP","og_type":"article","og_title":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade","og_description":"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002","og_url":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/","og_site_name":"Forex Guide","article_published_time":"2026-03-14T18:27:04+00:00","article_modified_time":"2026-04-14T04:21:59+00:00","og_image":[{"width":2400,"height":1260,"url":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","type":"image\/png"}],"author":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8","twitter_card":"summary_large_image","twitter_image":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","twitter_creator":"@https:\/\/twitter.com\/systre_COM","twitter_site":"@systre_COM","twitter_misc":{"\u57f7\u7b46\u8005":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"7\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#article","isPartOf":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/"},"author":{"name":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8","@id":"https:\/\/sys-tre.com\/forexguide\/#\/schema\/person\/6d4b91f175c62b272d48ff74ffe237c1"},"headline":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u5b8c\u5168\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u5168\u89e3\u8aac","datePublished":"2026-03-14T18:27:04+00:00","dateModified":"2026-04-14T04:21:59+00:00","mainEntityOfPage":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/"},"wordCount":238,"publisher":{"@id":"https:\/\/sys-tre.com\/forexguide\/#organization"},"image":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#primaryimage"},"thumbnailUrl":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","keywords":["MQL5"],"articleSection":["MQL\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/","url":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/","name":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTrade","isPartOf":{"@id":"https:\/\/sys-tre.com\/forexguide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#primaryimage"},"image":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#primaryimage"},"thumbnailUrl":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","datePublished":"2026-03-14T18:27:04+00:00","dateModified":"2026-04-14T04:21:59+00:00","description":"MQL5\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\uff08OnInit\u30fbOnTick\u30fbOnTimer\u30fbOnTrade\u30fbOnChartEvent\uff09\u306e\u4f7f\u3044\u65b9\u3092\u89e3\u8aac\u3002EA\u958b\u767a\u306e\u57fa\u672c\u69cb\u9020\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#primaryimage","url":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","contentUrl":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2026\/06\/forexguide-mqlref-eyecatch.png","width":2400,"height":1260},{"@type":"BreadcrumbList","@id":"https:\/\/sys-tre.com\/forexguide\/mql5-event-handlers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/sys-tre.com\/forexguide\/"},{"@type":"ListItem","position":2,"name":"MQL\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9","item":"https:\/\/sys-tre.com\/forexguide\/category\/mql-reference\/"},{"@type":"ListItem","position":3,"name":"MQL5 \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u5b8c\u5168\u30ac\u30a4\u30c9\uff5cOnInit\u30fbOnTick\u30fbOnTimer\u30fbOnChartEvent\u5168\u89e3\u8aac"}]},{"@type":"WebSite","@id":"https:\/\/sys-tre.com\/forexguide\/#website","url":"https:\/\/sys-tre.com\/forexguide\/","name":"\u30b7\u30b9\u30c8\u30ec.COM","description":"\u30b7\u30b9\u30c8\u30ec.COM ForexGuide\uff5cFX\u81ea\u52d5\u58f2\u8cb7\u306b\u95a2\u3059\u308b\u304a\u5f79\u7acb\u3061\u60c5\u5831\u3092\u66f4\u65b0\u4e2d\uff01","publisher":{"@id":"https:\/\/sys-tre.com\/forexguide\/#organization"},"alternateName":"\u30b7\u30b9\u30c8\u30ecCOM","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sys-tre.com\/forexguide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/sys-tre.com\/forexguide\/#organization","name":"\u30b7\u30b9\u30c8\u30ec.COM","alternateName":"\u30b7\u30b9\u30c8\u30ecCOM","url":"https:\/\/sys-tre.com\/forexguide\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/sys-tre.com\/forexguide\/#\/schema\/logo\/image\/","url":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2023\/05\/\u30b7\u30b9\u30c8\u30ec.COM_\u30ed\u30b4-1.svg","contentUrl":"https:\/\/sys-tre.com\/forexguide\/wp-content\/uploads\/2023\/05\/\u30b7\u30b9\u30c8\u30ec.COM_\u30ed\u30b4-1.svg","width":500,"height":500,"caption":"\u30b7\u30b9\u30c8\u30ec.COM"},"image":{"@id":"https:\/\/sys-tre.com\/forexguide\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/systre_COM","https:\/\/www.youtube.com\/@systre_com","https:\/\/www.facebook.com\/people\/%E3%82%B7%E3%82%B9%E3%83%88%E3%83%ACcom\/61587699411751\/","https:\/\/www.instagram.com\/systre_com\/","https:\/\/www.tiktok.com\/@sys_tre.com"],"description":"FX\u81ea\u52d5\u58f2\u8cb7EA\uff08Expert Advisor\uff09200\u672c\u4ee5\u4e0a\u3092\u7121\u6599\u63d0\u4f9b\u3059\u308b\u30de\u30fc\u30b1\u30c3\u30c8\u30d7\u30ec\u30a4\u30b9\u3002\u5168EA\u306e\u30d5\u30a9\u30ef\u30fc\u30c9\u30c6\u30b9\u30c8\u30fb\u30ea\u30a2\u30eb\u53e3\u5ea7\u904b\u7528\u30c7\u30fc\u30bf\u3092\u516c\u958b\u3002MT4\/MT5\u5bfe\u5fdc\u3002","foundingDate":"2023","knowsAbout":["FX\u81ea\u52d5\u58f2\u8cb7","Expert Advisor","MetaTrader","\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790","\u30b7\u30b9\u30c6\u30e0\u30c8\u30ec\u30fc\u30c9"],"contactPoint":{"@type":"ContactPoint","contactType":"customer service","url":"https:\/\/sys-tre.com\/contact-us\/","availableLanguage":["Japanese","English"]},"legalName":"Attempia Ltd"},{"@type":"Person","@id":"https:\/\/sys-tre.com\/forexguide\/#\/schema\/person\/6d4b91f175c62b272d48ff74ffe237c1","name":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b6ee0bfaa0b0a8c1c9af71dab7cf7fce04ac8f81a3d6bc3155344b588e526631?s=96&d=mm&r=g","caption":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8"},"description":"\u30b7\u30b9\u30c8\u30ec.COM\u7de8\u96c6\u90e8\u306f\u3001FX\u81ea\u52d5\u58f2\u8cb7\uff08EA\uff09\u3068\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790\u3092\u5c02\u9580\u3068\u3059\u308b\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30e1\u30c7\u30a3\u30a2\u300c\u30b7\u30b9\u30c8\u30ec.COM\u300d\u306e\u7de8\u96c6\u30c1\u30fc\u30e0\u3067\u3059\u3002200\u672c\u4ee5\u4e0a\u306eEA\u306e\u30d5\u30a9\u30ef\u30fc\u30c9\u30c6\u30b9\u30c8\u7d50\u679c\u3092\u516c\u958b\u3057\u3001\u5b9f\u969b\u306e\u904b\u7528\u30c7\u30fc\u30bf\u306b\u57fa\u3065\u3044\u305f\u5ba2\u89b3\u7684\u306a\u60c5\u5831\u3092\u767a\u4fe1\u3057\u3066\u3044\u307e\u3059\u3002\u8a18\u4e8b\u306e\u57f7\u7b46\u30fb\u76e3\u4fee\u306fMetaTrader\uff08MT4\/MT5\uff09\u3067\u306e\u5b9f\u904b\u7528\u7d4c\u9a13\u3092\u6301\u3064\u30b9\u30bf\u30c3\u30d5\u304c\u62c5\u5f53\u3002","sameAs":["https:\/\/sys-tre.com\/forexguide\/about\/","https:\/\/x.com\/systre_COM"],"jobTitle":"FX\u81ea\u52d5\u58f2\u8cb7\u30fb\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790 \u7de8\u96c6\u30c1\u30fc\u30e0","knowsAbout":["FX\u81ea\u52d5\u58f2\u8cb7","Expert Advisor (EA)","\u30c6\u30af\u30cb\u30ab\u30eb\u5206\u6790","MetaTrader 4","MetaTrader 5","MQL4","MQL5","\u30ea\u30b9\u30af\u7ba1\u7406","\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u30c8\u30ec\u30fc\u30c9"],"url":"https:\/\/sys-tre.com\/forexguide\/about\/","worksFor":{"@type":"Organization","name":"\u30b7\u30b9\u30c8\u30ec.COM","url":"https:\/\/sys-tre.com\/"}}]}},"_links":{"self":[{"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/posts\/65657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/users\/686"}],"replies":[{"embeddable":true,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/comments?post=65657"}],"version-history":[{"count":3,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/posts\/65657\/revisions"}],"predecessor-version":[{"id":67373,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/posts\/65657\/revisions\/67373"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/media\/71194"}],"wp:attachment":[{"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/media?parent=65657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/categories?post=65657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sys-tre.com\/forexguide\/wp-json\/wp\/v2\/tags?post=65657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}