last ...
This commit is contained in:
@@ -3127,89 +3127,60 @@ public:
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Generate Support Signal for Specified Provider ...
|
// Generate Support Signal for Specified Provider ...
|
||||||
if (result && provider == ToString(PROVIDER_NONE))
|
if (result)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
double cKijunSen = cMarket.ich.GetKijunSen(0);
|
// Generate Opposit Signal ...
|
||||||
double sKijunSen = sMarket.ich.GetKijunSen(0);
|
|
||||||
double mKijunSen = mMarket.ich.GetKijunSen(0);
|
|
||||||
double lKijunSen = lMarket.ich.GetKijunSen(0);
|
|
||||||
double hKijunSen = hMarket.ich.GetKijunSen(0);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
double kijunSens[] = {
|
|
||||||
cKijunSen,
|
|
||||||
sKijunSen,
|
|
||||||
mKijunSen,
|
|
||||||
lKijunSen,
|
|
||||||
hKijunSen //
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
double lesserKijun = FindLesserThan(
|
|
||||||
entry,
|
|
||||||
kijunSens,
|
|
||||||
true //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
double biggerKijun = FindBiggerThan(
|
|
||||||
entry,
|
|
||||||
kijunSens,
|
|
||||||
true //
|
|
||||||
);
|
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_POSITION_TYPE sType =
|
|
||||||
hasLong
|
|
||||||
? POSITION_TYPE_SELL
|
|
||||||
: POSITION_TYPE_BUY;
|
|
||||||
|
|
||||||
bool isLongS = IsLong(sType);
|
|
||||||
|
|
||||||
//
|
|
||||||
double sEntry =
|
|
||||||
isLongS
|
|
||||||
? biggerKijun
|
|
||||||
: lesserKijun;
|
|
||||||
|
|
||||||
//
|
|
||||||
double peakMin = GetMinPeaks(true);
|
|
||||||
double peakMax = GetMinPeaks(true);
|
|
||||||
double valeMin = GetMaxVales(true);
|
|
||||||
double valeMax = GetMaxVales(true);
|
|
||||||
|
|
||||||
//
|
|
||||||
double sTP =
|
|
||||||
isLongS
|
|
||||||
? peakMin
|
|
||||||
: valeMax;
|
|
||||||
|
|
||||||
//
|
|
||||||
double sSL =
|
|
||||||
isLongS
|
|
||||||
? valeMin
|
|
||||||
: peakMax;
|
|
||||||
|
|
||||||
//
|
|
||||||
double sVolume = mSignal.volume * 2;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Prepare ...
|
|
||||||
XSignal sSignal;
|
XSignal sSignal;
|
||||||
bool isValid = sSignal.Prepare(
|
|
||||||
|
//
|
||||||
|
ENUM_POSITION_TYPE mType = IsLong(mSignal.type)
|
||||||
|
? POSITION_TYPE_SELL
|
||||||
|
: POSITION_TYPE_BUY;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSLong = IsLong(mType);
|
||||||
|
|
||||||
|
//
|
||||||
|
double sEntry = GetEntry(
|
||||||
|
mSignal.symbol,
|
||||||
|
mType //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
double risk = MathAbs(mSignal.entry - sl);
|
||||||
|
|
||||||
|
//
|
||||||
|
double reward = risk * r2r;
|
||||||
|
|
||||||
|
//
|
||||||
|
double sSL = isSLong
|
||||||
|
? entry - risk
|
||||||
|
: entry + risk;
|
||||||
|
|
||||||
|
//
|
||||||
|
double sTP = isSLong
|
||||||
|
? entry + reward
|
||||||
|
: entry - reward;
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isPrepared = sSignal.Prepare(
|
||||||
mSignal.symbol,
|
mSignal.symbol,
|
||||||
mSignal.provider,
|
mSignal.provider,
|
||||||
mSignal.period,
|
mSignal.period,
|
||||||
sType,
|
mType,
|
||||||
X_ORDER_MODE_STOP,
|
mSignal.mode,
|
||||||
sEntry,
|
sEntry,
|
||||||
sVolume,
|
mSignal.volume,
|
||||||
X_SIGNAL_USE_NOTHING,
|
mSignal.action,
|
||||||
sSL,
|
sSL,
|
||||||
sTP //
|
sTP //
|
||||||
);
|
);
|
||||||
if (isValid)
|
|
||||||
|
//
|
||||||
|
if (isPrepared)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
AddRef(
|
AddRef(
|
||||||
@@ -3245,10 +3216,10 @@ public:
|
|||||||
FindSupportAndResistances();
|
FindSupportAndResistances();
|
||||||
|
|
||||||
//
|
//
|
||||||
// TODO:
|
// TODO:
|
||||||
|
|
||||||
//
|
//
|
||||||
// Here We Have to Implement Trail Management for
|
// Here We Have to Implement Trail Management for
|
||||||
// Spearate Providers ...
|
// Spearate Providers ...
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user