last ...
This commit is contained in:
@@ -368,78 +368,22 @@ class XCX121SMCBaseStrategy : public XCBaseAlert
|
||||
// Update POIs ...
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _1DStates[];
|
||||
m1DPOI.Update(_1DStates);
|
||||
// Trigger ...
|
||||
ENUM_XPOI_EVENTS triggerPOIEvents[];
|
||||
mTriggerPOIDetector.Update(triggerPOIEvents);
|
||||
mTriggerPOIDetector.GetState(mTriggerPOIState);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _4HStates[];
|
||||
m4HPOI.Update(_4HStates);
|
||||
// Analyse ...
|
||||
ENUM_XPOI_EVENTS analysePOIEvents[];
|
||||
mAnalysePOIDetector.Update(analysePOIEvents);
|
||||
mAnalysePOIDetector.GetState(mAnalysePOIState);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _2HStates[];
|
||||
m2HPOI.Update(_2HStates);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _1HStates[];
|
||||
m1HPOI.Update(_1HStates);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _15MStates[];
|
||||
m15MPOI.Update(_15MStates);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _5MStates[];
|
||||
m5MPOI.Update(_5MStates);
|
||||
|
||||
//
|
||||
ENUM_XPOI_EVENTS _1MStates[];
|
||||
m1MPOI.Update(_1MStates);
|
||||
|
||||
//
|
||||
// Read all POI States ...
|
||||
m1DPOI.GetState(_1DState);
|
||||
m4HPOI.GetState(_4HState);
|
||||
m2HPOI.GetState(_2HState);
|
||||
m1HPOI.GetState(_1HState);
|
||||
m15MPOI.GetState(_15MState);
|
||||
m5MPOI.GetState(_5MState);
|
||||
m1MPOI.GetState(_1MState);
|
||||
|
||||
//
|
||||
// Combine States ...
|
||||
XPOIState _States[];
|
||||
AddRef(
|
||||
_1DState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_4HState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_2HState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_1HState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_15MState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_5MState,
|
||||
_States //
|
||||
);
|
||||
AddRef(
|
||||
_1MState,
|
||||
_States //
|
||||
);
|
||||
CombineStates(
|
||||
_CombineState,
|
||||
_States //
|
||||
);
|
||||
// Trigger ...
|
||||
ENUM_XPOI_EVENTS visionPOIEvents[];
|
||||
mVisionPOIDetector.Update(visionPOIEvents);
|
||||
mVisionPOIDetector.GetState(mVisionPOIState);
|
||||
|
||||
//
|
||||
// Check Current Processing Tick has Signal or not ...
|
||||
@@ -530,23 +474,14 @@ class XCX121SMCBaseStrategy : public XCBaseAlert
|
||||
|
||||
//
|
||||
// Point Of Interests ...
|
||||
XCPOIDetector *m1DPOI;
|
||||
XCPOIDetector *m4HPOI;
|
||||
XCPOIDetector *m2HPOI;
|
||||
XCPOIDetector *m1HPOI;
|
||||
XCPOIDetector *m15MPOI;
|
||||
XCPOIDetector *m5MPOI;
|
||||
XCPOIDetector *m1MPOI;
|
||||
XCPOIDetector *mTriggerPOIDetector;
|
||||
XCPOIDetector *mAnalysePOIDetector;
|
||||
XCPOIDetector *mVisionPOIDetector;
|
||||
|
||||
//
|
||||
XPOIState _1DState;
|
||||
XPOIState _4HState;
|
||||
XPOIState _2HState;
|
||||
XPOIState _1HState;
|
||||
XPOIState _15MState;
|
||||
XPOIState _5MState;
|
||||
XPOIState _1MState;
|
||||
XPOIState _CombineState;
|
||||
XPOIState mTriggerPOIState;
|
||||
XPOIState mAnalysePOIState;
|
||||
XPOIState mVisionPOIState;
|
||||
|
||||
//
|
||||
XCPOIDrawer *mPOIDrawer; // POI Drawer Class ...
|
||||
@@ -1586,102 +1521,33 @@ class XCX121SMCBaseStrategy : public XCBaseAlert
|
||||
int poiRequired = 10;
|
||||
|
||||
//
|
||||
// 1D Period ...
|
||||
// POI Detector ...
|
||||
m1DPOI = new XCPOIDetector(
|
||||
// Trigger ...
|
||||
mTriggerPOIDetector = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_D1 //
|
||||
period //
|
||||
);
|
||||
mTriggerPOIDetector.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
mTriggerPOIDetector.Init();
|
||||
|
||||
//
|
||||
m1DPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m1DPOI.Init();
|
||||
|
||||
//
|
||||
// 4H Period ...
|
||||
// POI Detector ...
|
||||
m4HPOI = new XCPOIDetector(
|
||||
// Analyse ...
|
||||
ENUM_TIMEFRAMES analysePeriod = GetAnalysePeriod(period);
|
||||
mAnalysePOIDetector = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_H4 //
|
||||
analysePeriod //
|
||||
);
|
||||
mAnalysePOIDetector.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
mAnalysePOIDetector.Init();
|
||||
|
||||
//
|
||||
m4HPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m4HPOI.Init();
|
||||
|
||||
//
|
||||
// 2H Period ...
|
||||
// POI Detector ...
|
||||
m2HPOI = new XCPOIDetector(
|
||||
// Vision ...
|
||||
ENUM_TIMEFRAMES visionPeriod = GetVisionPeriod(period);
|
||||
mVisionPOIDetector = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_H2 //
|
||||
visionPeriod //
|
||||
);
|
||||
|
||||
//
|
||||
m2HPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m2HPOI.Init();
|
||||
|
||||
//
|
||||
// 1H Period ...
|
||||
// POI Detector ...
|
||||
m1HPOI = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_H1 //
|
||||
);
|
||||
|
||||
//
|
||||
m1HPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m1HPOI.Init();
|
||||
|
||||
//
|
||||
// 15M Period ...
|
||||
// POI Detector ...
|
||||
m15MPOI = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_M15 //
|
||||
);
|
||||
|
||||
//
|
||||
m15MPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m15MPOI.Init();
|
||||
|
||||
//
|
||||
// 5M Period ...
|
||||
// POI Detector ...
|
||||
m5MPOI = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_M5 //
|
||||
);
|
||||
|
||||
//
|
||||
m5MPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m5MPOI.Init();
|
||||
|
||||
//
|
||||
// 1M Period ...
|
||||
// POI Detector ...
|
||||
m1MPOI = new XCPOIDetector(
|
||||
symbol,
|
||||
PERIOD_M1 //
|
||||
);
|
||||
|
||||
//
|
||||
m1MPOI.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
|
||||
//
|
||||
m1MPOI.Init();
|
||||
mVisionPOIDetector.MaxNumberOfRequiredPOIs(poiRequired);
|
||||
mVisionPOIDetector.Init();
|
||||
|
||||
//
|
||||
}
|
||||
@@ -1692,11 +1558,9 @@ class XCX121SMCBaseStrategy : public XCBaseAlert
|
||||
void DeInit()
|
||||
{
|
||||
//
|
||||
delete m1DPOI;
|
||||
delete m4HPOI;
|
||||
delete m5MPOI;
|
||||
delete m1MPOI;
|
||||
delete m15MPOI;
|
||||
delete mTriggerPOIDetector;
|
||||
delete mAnalysePOIDetector;
|
||||
delete mVisionPOIDetector;
|
||||
|
||||
//
|
||||
delete mPOIDrawer;
|
||||
|
||||
@@ -619,6 +619,155 @@ typedef void (*TOnX121SMCSignal)(
|
||||
X121SMCStrategyConditions &conditions //
|
||||
);
|
||||
|
||||
//
|
||||
// Time Frames Tools ...
|
||||
|
||||
/**
|
||||
* Calculate Analyse Period ...
|
||||
*
|
||||
* @param value: ENUM_TIMEFRAMES member, Specified Trigger Period ...
|
||||
*
|
||||
* @return ( ENUM_TIMEFRAMES )
|
||||
*/
|
||||
ENUM_TIMEFRAMES GetAnalysePeriod(ENUM_TIMEFRAMES value)
|
||||
{
|
||||
//
|
||||
ENUM_TIMEFRAMES result = NULL;
|
||||
|
||||
//
|
||||
value = NormalizePeriod(value);
|
||||
|
||||
//
|
||||
switch (value)
|
||||
{
|
||||
//
|
||||
case PERIOD_M1:
|
||||
case PERIOD_M2:
|
||||
case PERIOD_M3:
|
||||
case PERIOD_M4:
|
||||
case PERIOD_M5:
|
||||
case PERIOD_M6:
|
||||
case PERIOD_M10:
|
||||
case PERIOD_M12:
|
||||
result = PERIOD_M15;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_M15:
|
||||
case PERIOD_M20:
|
||||
result = PERIOD_M30;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_H1:
|
||||
case PERIOD_H2:
|
||||
case PERIOD_H3:
|
||||
result = PERIOD_H4;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_H4:
|
||||
case PERIOD_H6:
|
||||
case PERIOD_H8:
|
||||
result = PERIOD_H12;
|
||||
break;
|
||||
|
||||
//
|
||||
default:
|
||||
result = NULL;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
bool HasValidAnalysePeriod(
|
||||
ENUM_TIMEFRAMES value,
|
||||
ENUM_TIMEFRAMES &period //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
period = GetAnalysePeriod(value);
|
||||
result = IsValid(period);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate Vision Period ...
|
||||
*
|
||||
* @param value: ENUM_TIMEFRAMES member, Specified Trigger Period ...
|
||||
*
|
||||
* @return ( ENUM_TIMEFRAMES )
|
||||
*/
|
||||
ENUM_TIMEFRAMES GetVisionPeriod(ENUM_TIMEFRAMES value)
|
||||
{
|
||||
//
|
||||
ENUM_TIMEFRAMES result = NULL;
|
||||
|
||||
//
|
||||
value = NormalizePeriod(value);
|
||||
|
||||
//
|
||||
switch (value)
|
||||
{
|
||||
//
|
||||
case PERIOD_M1:
|
||||
case PERIOD_M2:
|
||||
case PERIOD_M3:
|
||||
case PERIOD_M4:
|
||||
case PERIOD_M5:
|
||||
case PERIOD_M6:
|
||||
case PERIOD_M10:
|
||||
case PERIOD_M12:
|
||||
result = PERIOD_H1;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_M15:
|
||||
case PERIOD_M20:
|
||||
result = PERIOD_H2;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_H1:
|
||||
case PERIOD_H2:
|
||||
case PERIOD_H3:
|
||||
result = PERIOD_H6;
|
||||
break;
|
||||
|
||||
//
|
||||
case PERIOD_H4:
|
||||
case PERIOD_H6:
|
||||
case PERIOD_H8:
|
||||
result = PERIOD_D1;
|
||||
break;
|
||||
|
||||
//
|
||||
default:
|
||||
result = NULL;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
bool HasValidVisionPeriod(
|
||||
ENUM_TIMEFRAMES value,
|
||||
ENUM_TIMEFRAMES &period //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
period = GetVisionPeriod(value);
|
||||
result = IsValid(period);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Extentions ...
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user