72선 4선 이전봉과 비교 추가
This commit is contained in:
@@ -17,8 +17,8 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
public int LengthSignal = 12;
|
||||
public int AdxLength = 12;
|
||||
public double AdxThreshold = 24;
|
||||
public double RangeThreshold = 2.2;
|
||||
public double RangeThresholdSell = 2.2;
|
||||
public double RangeThreshold = 1;
|
||||
public double RangeThresholdSell = 1;
|
||||
|
||||
// 데이터 입력: High, Low, Close 배열 (최근 것이 맨 끝)
|
||||
public List<double> High;
|
||||
@@ -170,6 +170,27 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
{
|
||||
return ComputeAdx() > AdxThreshold;
|
||||
}
|
||||
public double GetAvgData(int range)
|
||||
{
|
||||
var sma = 0.0;
|
||||
|
||||
for (var i = 0; i < range; i++)
|
||||
{
|
||||
sma += Close[Close.Count - (i + 1)];
|
||||
}
|
||||
return sma / range;
|
||||
}
|
||||
|
||||
public double GetAvgData(int range, int prev)
|
||||
{
|
||||
var sma = 0.0;
|
||||
|
||||
for (var i = 0; i < range; i++)
|
||||
{
|
||||
sma += Close[Close.Count - (i + 1 + prev)];
|
||||
}
|
||||
return sma / range;
|
||||
}
|
||||
|
||||
// 10. 매수 조건
|
||||
public bool IsLongSignal()
|
||||
@@ -179,11 +200,14 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
var (macd, signal) = ComputeMacd();
|
||||
var (prevMacd, prevSignal) = PrevComputeMacd();
|
||||
|
||||
bool isUptrend = Close.Last() > Sma4.Last();
|
||||
bool isUptrend = Close.Last() > Sma4.Last();
|
||||
|
||||
return isUptrend &&
|
||||
((prevMd == 0 && md > 0) || (macd > prevMacd && signal > prevSignal && md > 0 && macd > signal)) &&
|
||||
IsTrending() && !IsRangeBound();
|
||||
return ((prevMd == 0 && md > 0) || (prevMacd < prevSignal && macd > prevMacd && macd > signal && md > 0)) &&
|
||||
IsTrending() && IsSmaMiddle(4, 12, true, GetAvgData(72)) && GetAvgData(4) > GetAvgData(4, 1);
|
||||
|
||||
//return isUptrend &&
|
||||
// ((prevMd == 0 && md > 0) || (macd > prevMacd && signal > prevSignal && md > 0 && macd > signal)) &&
|
||||
// IsTrending() && !IsRangeBound();
|
||||
}
|
||||
|
||||
// 11. 매도 조건
|
||||
@@ -196,9 +220,14 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
|
||||
bool isDowntrend = Close.Last() < Sma4.Last();
|
||||
|
||||
return isDowntrend &&
|
||||
((prevMd == 0 && md < 0) || (macd < prevMacd && signal < prevSignal && md < 0 && macd < signal)) &&
|
||||
IsTrending() && !IsRangeBoundSell();
|
||||
return ((prevMd == 0 && md < 0) || (prevMacd > prevSignal && macd < prevMacd && macd < signal && md < 0)) &&
|
||||
IsTrending() && IsSmaMiddle(4, 12, false, GetAvgData(72)) && GetAvgData(4) < GetAvgData(4, 1);
|
||||
|
||||
//return isDowntrend &&
|
||||
// ((prevMd == 0 && md < 0) || (macd < prevMacd && signal < prevSignal && md < 0 && macd < signal)) &&
|
||||
// IsTrending() && !IsRangeBoundSell();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public bool IsSmaHigh(int range, int count)
|
||||
@@ -241,7 +270,7 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IsSmaMiddle(int range, int count, bool longFlag) {
|
||||
public bool IsSmaMiddle(int range, int count, bool longFlag, double value) {
|
||||
var list = new List<double>();
|
||||
for (int i = Close.Count - count - 1; i < count; i++)
|
||||
{
|
||||
@@ -256,14 +285,14 @@ namespace BitgetApi.IndicatorConditionSetup
|
||||
|
||||
if (longFlag)
|
||||
{
|
||||
if(list[list.Count - 1] > list.Average())
|
||||
if(value < list.Average())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (list[list.Count - 1] < list.Average())
|
||||
if (value > list.Average())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user