last ...
This commit is contained in:
@@ -457,7 +457,7 @@ void OnTick()
|
||||
fima2Signaller.OnTick();
|
||||
|
||||
//
|
||||
// AnalyseMarket(1);
|
||||
AnalyseMarket(1);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -611,14 +611,24 @@ void OnSignalTriggered(XSignal &signal)
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// TODO: Fix this ...
|
||||
return;
|
||||
|
||||
//
|
||||
// Draw Signal on Chart ...
|
||||
// XCSignalObject *iSignalObj;
|
||||
// bool has = fima2Signaller.poiDrawer.DrawSignal(
|
||||
// signal,
|
||||
// iSignalObj,
|
||||
// 7 //
|
||||
// );
|
||||
XCSignalObject *iSignalObj;
|
||||
bool has = fima2Signaller.poiDrawer.DrawSignal(
|
||||
signal,
|
||||
iSignalObj,
|
||||
7 //
|
||||
);
|
||||
|
||||
//
|
||||
if (has)
|
||||
{
|
||||
Print("Signal Issued: ", signal.GetObjectID());
|
||||
}
|
||||
|
||||
//
|
||||
// Try to Execute Signal ...
|
||||
@@ -626,29 +636,29 @@ void OnSignalTriggered(XSignal &signal)
|
||||
//
|
||||
// Draw Signal Vertical Line ...
|
||||
|
||||
//
|
||||
CChartObjectVLine *iObj = new CChartObjectVLine();
|
||||
// //
|
||||
// CChartObjectVLine *iObj = new CChartObjectVLine();
|
||||
|
||||
//
|
||||
string iName = signal.GetTag();
|
||||
color iColor = IsLong(signal.type) ? clrLime : clrRed;
|
||||
// //
|
||||
// string iName = signal.GetObjectID();
|
||||
// color iColor = IsLong(signal.type) ? clrLime : clrRed;
|
||||
|
||||
//
|
||||
bool has = iObj.Create(
|
||||
fima2Signaller.poiDrawer.ChartIdentification(),
|
||||
iName,
|
||||
fima2Signaller.poiDrawer.SubWindowIdentification(),
|
||||
signal.time //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
iObj.Width(2);
|
||||
iObj.Color(iColor);
|
||||
// //
|
||||
// bool has = iObj.Create(
|
||||
// fima2Signaller.poiDrawer.ChartIdentification(),
|
||||
// iName,
|
||||
// fima2Signaller.poiDrawer.SubWindowIdentification(),
|
||||
// signal.time //
|
||||
// );
|
||||
// if (has)
|
||||
// {
|
||||
// //
|
||||
// iObj.Width(2);
|
||||
// iObj.Color(iColor);
|
||||
|
||||
//
|
||||
// eaDraws.Add(iObj);
|
||||
}
|
||||
// //
|
||||
// // eaDraws.Add(iObj);
|
||||
// }
|
||||
|
||||
// //
|
||||
// // Alert Issued Signal ...
|
||||
@@ -913,7 +923,8 @@ void AnalyseMarket(int barIndex = 0)
|
||||
);
|
||||
|
||||
//
|
||||
// HandleSignalLookup(bar);
|
||||
// XFIMASIgballer2First(bar);
|
||||
HandleLookupSignal(bar);
|
||||
|
||||
//
|
||||
bar.Clean();
|
||||
@@ -922,7 +933,7 @@ void AnalyseMarket(int barIndex = 0)
|
||||
//
|
||||
// Handle Signal Looking Up ...
|
||||
// Register it as XFIMA Signaller 2 ...
|
||||
void HandleSignalLookup(XOHCL &bar)
|
||||
void XFIMASIgballer2First(XOHCL &bar)
|
||||
{
|
||||
//
|
||||
bool has =
|
||||
@@ -1805,4 +1816,98 @@ void HandleSignalLookup(XOHCL &bar)
|
||||
SpecifiedClean(resistances);
|
||||
}
|
||||
|
||||
//
|
||||
void HandleLookupSignal(XOHCL &bar)
|
||||
{
|
||||
//
|
||||
bool has =
|
||||
bar.IsValid();
|
||||
if (!has)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
XBoxZone iZone;
|
||||
XSignal iSignal;
|
||||
string iName = NULL;
|
||||
bool isBullish = false;
|
||||
bool isBearish = false;
|
||||
int barIndex = bar.Index();
|
||||
double iPrice = EMPTY_VALUE;
|
||||
XFIMAConditions fimaConditions;
|
||||
ENUM_X_PRICE iPriceType = X_PRICE_NONE;
|
||||
ENUM_X_DIRECTION iDir = X_DIRECTION_NONE;
|
||||
|
||||
//
|
||||
int cIDX = 0;
|
||||
int pIDX = cIDX + 1;
|
||||
|
||||
//
|
||||
// Check for a Cross ...
|
||||
|
||||
//
|
||||
// fima2Signaller.fimaHelper.Update(barIndex);
|
||||
has = fima2Signaller.fimaHelper.GetConditions(
|
||||
fimaConditions,
|
||||
barIndex,
|
||||
5 //
|
||||
);
|
||||
|
||||
//
|
||||
double cSlowMA = fimaConditions.maSlowBuffer[cIDX];
|
||||
double pSlowMA = fimaConditions.maSlowBuffer[pIDX];
|
||||
|
||||
//
|
||||
double cMAUpper = fimaConditions.maBandUpperBuffer[cIDX];
|
||||
double cMALower = fimaConditions.maBandLowerBuffer[cIDX];
|
||||
|
||||
//
|
||||
double pMAUpper = fimaConditions.maBandUpperBuffer[pIDX];
|
||||
double pMALower = fimaConditions.maBandLowerBuffer[pIDX];
|
||||
|
||||
//
|
||||
bool isCrossedOver = cSlowMA > cMALower &&
|
||||
pSlowMA < pMALower;
|
||||
|
||||
//
|
||||
bool isCrossedUnder = cSlowMA < cMAUpper &&
|
||||
cSlowMA > pMAUpper;
|
||||
|
||||
//
|
||||
has = isCrossedOver ||
|
||||
isCrossedUnder;
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
isBullish = false;
|
||||
isBearish = false;
|
||||
iDir = X_DIRECTION_NONE;
|
||||
}
|
||||
|
||||
//
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
isBullish = isCrossedOver;
|
||||
isBearish = isCrossedUnder;
|
||||
}
|
||||
|
||||
//
|
||||
iDir = (isBullish && !isBearish)
|
||||
? X_DIRECTION_BULLISH
|
||||
: (isBearish && !isBullish)
|
||||
? X_DIRECTION_BEARISH
|
||||
: X_DIRECTION_NONE;
|
||||
has = HasDirection(iDir);
|
||||
if (has)
|
||||
{
|
||||
Print("Conditions Detected ...");
|
||||
}
|
||||
|
||||
//
|
||||
// Cleanup Resources ...
|
||||
fimaConditions.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
Reference in New Issue
Block a user