Skip to content

Instantly share code, notes, and snippets.

@igotit-anything
Last active March 4, 2025 08:51
Show Gist options
  • Select an option

  • Save igotit-anything/d839f014d9fdad8f5fa2a87f560f5c9a to your computer and use it in GitHub Desktop.

Select an option

Save igotit-anything/d839f014d9fdad8f5fa2a87f560f5c9a to your computer and use it in GitHub Desktop.
CyEA960G1_TF_Single_1.mqh
////////// 파일들. 주로 클래스 정의들.
#include "../CySDK_MQL5/CCy_SIG_TrendFilter_1.mqh"
////////// 사용자 입력.
input ulong ui_magic_number = 9601;//Magic Number
/// 입력값들 수정전값 받아두는것.
ulong ui_magic_number_prev = ui_magic_number;
////////// 클래스 들 .대부분 동적 생성함.
CCy_SIG_TrendFilter * pTrendFilter = NULL;
void Create_TrendFilter()
{
Delete_TrendFilter();
pTrendFilter = new CCy_SIG_TrendFilter();
}
void Delete_TrendFilter()
{
if(pTrendFilter != NULL) { delete pTrendFilter ; pTrendFilter = NULL; }
}
void OnlyOnceExec_OnInit()
{
Create_TrendFilter();
}
void OnlyOnceExec_OnDeinit()
{
Delete_TrendFilter();
}
void Proc_Parameter_OnInit()
{
if(ui_magic_number != ui_magic_number_prev){
ui_magic_number_prev = ui_magic_number;
}
}
// OnDeinit 에서 REASON 값을 받아서 OnInit 에서 확인하기 위한 변수.
// 이 변수값은 ea 초기 실행시점에만 -1이므로 OnInit 내에서 1회 실행만 원하는 경우에도 활용가능.
int REASON_USING_IN_ONINIT = -1;
int OnInit()
{
if(REASON_USING_IN_ONINIT == -1) // EA 실행되고 첫 실행되는 OnInit()인 경우
{
OnlyOnceExec_OnInit();
}
else if(REASON_USING_IN_ONINIT == REASON_PARAMETERS) // 사용자가 파라메타 수정한 경우
{
Proc_Parameter_OnInit();
}
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason)
{
REASON_USING_IN_ONINIT = reason;
// reason 값이 REASON_CHARTCLOSE (차트 닫힘) / REASON_REMOVE (EA 제거)일 때 / MT5종료 인 경우에 실행할것들. 예. 클래스 인스턴스 동적 생성한것 삭제
if(reason == REASON_CHARTCLOSE || reason == REASON_REMOVE || reason == REASON_CLOSE)
{
OnlyOnceExec_OnDeinit();
}
}
//////////////////////////////////////////////////////////////////////////////////////
void OnTick()
{
}
@igotit-anything
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment