complete save signalinfo in files after a position finished by it's conditions, also remove force XASCT verifications and add new Signal Provider based on it ...
This commit is contained in:
@@ -70,6 +70,40 @@ enum ENUM_X_ORDER_MODES
|
||||
X_ORDER_MODE_STOP_LIMIT, // Pending Stop Limit Order
|
||||
};
|
||||
|
||||
//
|
||||
string ToString(ENUM_X_ORDER_MODES value)
|
||||
{
|
||||
//
|
||||
string result = NULL;
|
||||
|
||||
//
|
||||
switch (value)
|
||||
{
|
||||
//
|
||||
case X_ORDER_MODE_MARKET:
|
||||
result = "Market";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_ORDER_MODE_LIMIT:
|
||||
result = "Limit";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_ORDER_MODE_STOP:
|
||||
result = "Stop";
|
||||
break;
|
||||
|
||||
//
|
||||
case X_ORDER_MODE_STOP_LIMIT:
|
||||
result = "StopLimit";
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Select Positions Type ...
|
||||
enum ENUM_X_POSITION_SELECT_METHODS
|
||||
@@ -1282,250 +1316,6 @@ struct XSignal
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Data Collecotr ...
|
||||
|
||||
//
|
||||
// Check this instance is Same os Given instance or not ...
|
||||
bool IsSameAs(
|
||||
const XSignal &value // instance for Compare
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
type == value.type &&
|
||||
mode == value.mode &&
|
||||
entry == value.entry &&
|
||||
period == value.period &&
|
||||
symbol == value.symbol &&
|
||||
provider == value.provider &&
|
||||
positionId == value.positionId
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Find index in a Collection ...
|
||||
int FindIndex(
|
||||
const XSignal &values[] // Collection to Find
|
||||
)
|
||||
{
|
||||
//
|
||||
return FindIndex(
|
||||
this,
|
||||
values
|
||||
//
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Check Items Passed Specific Filters or not ...
|
||||
bool IsFiltersPassed(
|
||||
string mSymbol = NULL, // Trading Symbol
|
||||
string mProvider = NULL, // Signal Provider
|
||||
ENUM_TIMEFRAMES mPeriod = NULL, // Trading Timeframe
|
||||
ENUM_POSITION_TYPE mType = NULL, // Long (Buy), Short (Sell)
|
||||
ENUM_X_ORDER_MODES mMode = NULL // Execution Mode
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
// Symbol Filter ...
|
||||
IsSymbolFilterPassed(
|
||||
mSymbol,
|
||||
this
|
||||
//
|
||||
)
|
||||
//
|
||||
&&
|
||||
//
|
||||
// Provider Filter ...
|
||||
IsProviderFilterPassed(
|
||||
mProvider,
|
||||
this
|
||||
//
|
||||
)
|
||||
//
|
||||
&&
|
||||
//
|
||||
// Period Filter ...
|
||||
IsPeriodFilterPassed(
|
||||
mPeriod,
|
||||
this
|
||||
//
|
||||
)
|
||||
//
|
||||
&&
|
||||
//
|
||||
// Type Filter ...
|
||||
IsTypeFilterPassed(
|
||||
mType,
|
||||
this
|
||||
//
|
||||
)
|
||||
//
|
||||
&&
|
||||
//
|
||||
// Mode Filter ...
|
||||
IsModeFilterPassed(
|
||||
mMode,
|
||||
this
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string GetToken()
|
||||
{
|
||||
return GetToken(this);
|
||||
}
|
||||
|
||||
//
|
||||
bool IsModelValid()
|
||||
{
|
||||
return IsValid();
|
||||
}
|
||||
|
||||
//
|
||||
// To String Representation ...
|
||||
string ToModelString()
|
||||
{
|
||||
//
|
||||
string result = NULL;
|
||||
|
||||
//
|
||||
if (!IsValid())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// For Modeling a Signal we Only Used:
|
||||
// - Period;
|
||||
// - Provider;
|
||||
// - Type;
|
||||
// - Mode;
|
||||
// - Symbol;
|
||||
// - PositionID;
|
||||
// - Entry;
|
||||
// - Volume;
|
||||
// - TPS;
|
||||
// - SLS;
|
||||
// - Issue Time;
|
||||
|
||||
//
|
||||
int iPeriodInt = (int)period;
|
||||
|
||||
//
|
||||
string tpsStr = Surround(XTPToken, tp);
|
||||
string slsStr = Surround(XSLToken, sl);
|
||||
string typeStr = Surround(XTypeToken, type);
|
||||
string modeStr = Surround(XModeToken, mode);
|
||||
string timeStr = Surround(XTimeToken, time);
|
||||
string entryStr = Surround(XEntryToken, entry);
|
||||
string SymbolStr = Surround(XSymbolToken, symbol);
|
||||
string volumeStr = Surround(XVolumeToken, volume);
|
||||
string positionIdStr = Surround(XIDToken, positionId);
|
||||
string periodStr = Surround(XPeriodToken, iPeriodInt);
|
||||
string providerStr = Surround(XProviderToken, provider);
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
GetToken() +
|
||||
"[" +
|
||||
//
|
||||
periodStr +
|
||||
providerStr +
|
||||
typeStr +
|
||||
modeStr +
|
||||
SymbolStr +
|
||||
positionIdStr +
|
||||
entryStr +
|
||||
volumeStr +
|
||||
tpsStr +
|
||||
slsStr +
|
||||
timeStr +
|
||||
//
|
||||
"]"
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Parse String Model and Fill Available
|
||||
// Items ...
|
||||
bool ParseModel(string value)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
Clean();
|
||||
|
||||
//
|
||||
if (!IsValid(value))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
// For Modeling a Signal we Only Used:
|
||||
// - Period;
|
||||
// - Provider;
|
||||
// - Type;
|
||||
// - Mode;
|
||||
// - Symbol;
|
||||
// - PositionID;
|
||||
// - Entry;
|
||||
// - Volume;
|
||||
// - TP;
|
||||
// - SL;
|
||||
// - Issue Time;
|
||||
|
||||
//
|
||||
tp = ParseDoubleSurrounded(value, XTPToken);
|
||||
sl = ParseDoubleSurrounded(value, XSLToken);
|
||||
positionId = ParseLongSurrounded(value, XIDToken);
|
||||
entry = ParseDoubleSurrounded(value, XEntryToken);
|
||||
volume = ParseDoubleSurrounded(value, XVolumeToken);
|
||||
|
||||
//
|
||||
time = ParseTimeSurrounded(value, XTimeToken);
|
||||
symbol = ParseStringSurrounded(value, XSymbolToken);
|
||||
provider = ParseStringSurrounded(value, XProviderToken);
|
||||
type = ((ENUM_POSITION_TYPE)ParseIntSurrounded(value, XTypeToken));
|
||||
mode = ((ENUM_X_ORDER_MODES)ParseIntSurrounded(value, XModeToken));
|
||||
period = ((ENUM_TIMEFRAMES)ParseIntSurrounded(value, XPeriodToken));
|
||||
|
||||
//
|
||||
// Validate ...
|
||||
result = IsValid();
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Draw Signal on Chart ...
|
||||
bool Draw(
|
||||
@@ -1681,6 +1471,36 @@ struct XSignal
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Retrieve String Representation of Signal ...
|
||||
string ToString()
|
||||
{
|
||||
//
|
||||
string result = NULL;
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
ToString("Symbol", symbol) +
|
||||
ToString("Period", period) +
|
||||
ToString("Provider", provider) +
|
||||
ToString("Type", type) +
|
||||
ToString("Mode", mode) +
|
||||
ToString("Volume", volume) +
|
||||
ToString("Entry", entry) +
|
||||
ToString("TP", tp) +
|
||||
ToString("SL", sl) +
|
||||
ToString("Time", time) +
|
||||
ToString("Comment", comment) +
|
||||
//
|
||||
""
|
||||
//
|
||||
;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user