삿는데 다음봉 되보니 아닐경우에 대한 예외처리 추가(원본가 오면 팔아버림)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using BitgetAPI.Data;
|
||||
using BitgetAPI.Data.IndicatorData;
|
||||
using DevExpress.Utils.Extensions;
|
||||
using DevExpress.XtraBars.Ribbon.Gallery;
|
||||
using DevExpress.XtraBars.ViewInfo;
|
||||
using System;
|
||||
@@ -34,7 +35,7 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
/// </summary>
|
||||
private bool firstCloudFlag = true;
|
||||
|
||||
public bool Calculate(List<CandleData> candles, SMABandType type)
|
||||
public bool Calculate(List<CandleData> candles, SMABandType type, bool flag = false)
|
||||
{
|
||||
var close = candles.Select(t => t.Close).ToList();
|
||||
|
||||
@@ -44,6 +45,14 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
|
||||
var open = candles.Select(t => t.Open).ToList();
|
||||
|
||||
if (flag)
|
||||
{
|
||||
close.RemoveAt(close.Count - 1);
|
||||
high.RemoveAt(high.Count - 1);
|
||||
low.RemoveAt(low.Count - 1);
|
||||
open.RemoveAt(open.Count - 1);
|
||||
}
|
||||
|
||||
int i = close.Count - 1;
|
||||
if (close.Count < 100 || high.Count < 100 || low.Count < 100 || open.Count < 100)
|
||||
return false;
|
||||
@@ -79,18 +88,18 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
|
||||
bool isSma4BelowCloud = low[i] < cloudBottomNow;
|
||||
bool isSma4AboveCloud = high[i] > cloudTopNow;
|
||||
bool cloudFlag = false;
|
||||
//bool cloudFlag = false;
|
||||
|
||||
if (!firstCloudFlag)
|
||||
{
|
||||
if(isSma4BelowCloud)
|
||||
cloudFlag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isSma4BelowCloud)
|
||||
firstCloudFlag = false;
|
||||
}
|
||||
//if (!firstCloudFlag)
|
||||
//{
|
||||
// if(isSma4BelowCloud)
|
||||
// cloudFlag = true;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// if (!isSma4BelowCloud)
|
||||
// firstCloudFlag = false;
|
||||
//}
|
||||
|
||||
|
||||
bool greenCandle = open[i] < close[i];
|
||||
@@ -101,8 +110,8 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
|
||||
bool rawLongSell = (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && sma4 < sma4High);
|
||||
|
||||
|
||||
bool rawNewShort = cloudFlag && IsSideways(high, low, i, false) && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4);
|
||||
//cloudFlag &&
|
||||
bool rawNewShort = IsSideways(high, low, i, false) && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4);
|
||||
|
||||
bool rawShortSell = (sma4 >= prevSma4 && prevSma4 >= prev2Sma4 && sma4 > sma4Middle);
|
||||
|
||||
@@ -122,8 +131,8 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
}
|
||||
else if (type == SMABandType.ShortSell)
|
||||
{
|
||||
if (rawShortSell)
|
||||
firstCloudFlag = true;
|
||||
//if (rawShortSell)
|
||||
// firstCloudFlag = true;
|
||||
return rawShortSell;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user