EA除去時のstart()とdeini()の挙動

スポンサーリンク

こんばんは。キリンです。
IsStopped()関数を調べていて気づいたことは、start()関数はEA除去時に2.5秒間稼働し続けることです。
あれ?でも、deinit()も2.5秒間だったような・・・
start()の残処理で2.5秒間使ってしまったら処理がdeinit()は起動するのでしょうか。
分からないので、実際にやってみました。
こんなプログラムを作って、実際に検証。

//+------------------------------------------------------------------+//|                                                         test.mq4 |//|                  Copyright Kirin 2010, MetaQuotes Software Corp. |//|                                   http://ameblo.jp/ftlabo-kirin/ |//+------------------------------------------------------------------+#property copyright "Copyright(C)2010, ForexTradingLaboratory"#property link      "http://www.ftlabo.com/"//#property show_inputs
#include <common_functions.mqh>
//+------------------------------------------------------------------+//| script program start function                                    |//+------------------------------------------------------------------+
int init(){
return(0);}
int deinit(){//----   int start = GetTickCount();   int now;   int last;   while(true){      now = GetTickCount();
if(now-last>100){         log("Action by end "+(start - now)+" millisecounds");         last = now;      }   }//----   return(0);}
int start()  {//----   int start;   int now;   int last;   bool isStopped = false;    bool first = true;   while(true){      isStopped = IsStopped();      if(isStopped){         if(first){            start = GetTickCount();            first=false;         }         now = GetTickCount();
if(now-last>100){            log("Action by start "+(start - now)+" millisecounds");            last = now;         }      }   }
return(0);  }//+------------------------------------------------------------------+

すると、結果がこうなりました。
■超直感!MT4(MQL)プログラミング講座■
start()が2.5秒稼働したあと、deinit()でも2.5秒間稼働し続けることが分かりました。
チャンチャン♪
今日もお読み下さりまして、ありがとうございます。

コメント

  1. Duck-butt tiger より:

    SECRET: 0
    PASS:
    とっても渋カッコいい記事です^^
    ありがとう。

  2. SECRET: 0
    PASS:
    >Duck-butt tigerさん
    ありがとうございます^^
    日本もどられました?

タイトルとURLをコピーしました