수조ㅓㅇ

This commit is contained in:
kyh
2024-12-02 11:36:30 +09:00
parent 44cffc404b
commit 83955016ca
3 changed files with 55 additions and 37 deletions

View File

@@ -402,16 +402,29 @@ namespace BitgetAPI.IndicatorConditionSetup
var 현재봉72 = candleData.movingAverageDataList[72].Value;
var 전봉Bol4 = candleData_전봉.movingAverageDataList[4].BolangerValue;
var 전봉Bol12 = candleData_전봉.movingAverageDataList[12].BolangerValue;
var 전봉Bol24 = candleData_전봉.movingAverageDataList[24].BolangerValue;
var 전봉Bol4_Down = candleData_전봉.movingAverageDataList[4].BolangerValue_Down;
var 전봉Bol12_Down = candleData_전봉.movingAverageDataList[12].BolangerValue_Down;
var 전봉Bol24_Down = candleData_전봉.movingAverageDataList[24].BolangerValue_Down;
var 전전봉Bol4 = candleData_전전봉.movingAverageDataList[4].BolangerValue;
var 전전봉Bol12 = candleData_전전봉.movingAverageDataList[12].BolangerValue;
var 전전봉Bol24 = candleData_전전봉.movingAverageDataList[24].BolangerValue;
var Bol4 = candleData.movingAverageDataList[4].BolangerValue;
var Bol12 = candleData.movingAverageDataList[12].BolangerValue;
var Bol24 = candleData.movingAverageDataList[24].BolangerValue;
var 전전봉Bol4_Down = candleData_전전봉.movingAverageDataList[4].BolangerValue_Down;
var 전전봉Bol12_Down = candleData_전전봉.movingAverageDataList[12].BolangerValue_Down;
var 전전봉Bol24_Down = candleData_전전봉.movingAverageDataList[24].BolangerValue_Down;
var Bol4_Down = candleData.movingAverageDataList[4].BolangerValue_Down;
var Bol12_Down = candleData.movingAverageDataList[12].BolangerValue_Down;
var Bol24_Down = candleData.movingAverageDataList[24].BolangerValue_Down;
var 전봉Bol4_Up = candleData_전봉.movingAverageDataList[4].BolangerValue_Up;
var 전봉Bol12_Up = candleData_전봉.movingAverageDataList[12].BolangerValue_Up;
var 전봉Bol24_Up = candleData_전봉.movingAverageDataList[24].BolangerValue_Up;
var 전전봉Bol4_Up = candleData_전전봉.movingAverageDataList[4].BolangerValue_Up;
var 전전봉Bol12_Up = candleData_전전봉.movingAverageDataList[12].BolangerValue_Up;
var 전전봉Bol24_Up = candleData_전전봉.movingAverageDataList[24].BolangerValue_Up;
var Bol4_Up = candleData.movingAverageDataList[4].BolangerValue_Up;
var Bol12_Up = candleData.movingAverageDataList[12].BolangerValue_Up;
var Bol24_Up = candleData.movingAverageDataList[24].BolangerValue_Up;
if ((int)interval != 1)
{
@@ -435,33 +448,34 @@ namespace BitgetAPI.IndicatorConditionSetup
{
var buyFlag = false;
var buyType = 0;
if(BuyLongStep.ContainsKey(market + interval) && BuyLongStep[market + interval])
{
if (현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2)
if (BuyLongStep.ContainsKey(market + interval) && BuyLongStep[market + interval])
{
if (현재봉72 < 현재봉24 && 현재봉24 < 현재봉12 && 현재봉12 < 현재봉2 && candleData.IchimokData.상한선 < 현재봉2)
{
if (Bol12 > Bol24 && 전봉Bol12 > 전봉Bol24 &&
전봉Bol12 > Bol12 && 전봉Bol24 > Bol24 &&
전봉Bol12 - 전봉Bol24 > Bol12 - Bol24)
if (Bol12_Up < Bol24_Up && 전봉Bol12_Up < 전봉Bol24_Up &&
전봉Bol12_Up < Bol12_Up && 전봉Bol24_Up < Bol24_Up)
{
buyType = 2;
buyFlag = true;
}
}
else if (현재봉2 < 현재봉24)
BuyLongStep[market + interval] = false;
}
else
{
if (
candleData.IchimokData.하한선 > 현재봉2 && candleData_전봉.IchimokData.하한선 > 전봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉24 > 전봉2 && 현재봉24 < 현재봉2 &&
전봉12 < 전봉2 && 현재봉12 < 현재봉24
candleData_전봉.IchimokData.하한선 > 전봉2 && candleData_전전봉.IchimokData.하한선 > 전전봉2 &&
전봉72 > 전봉2 && 전전봉72 > 전전봉2 && 전전봉24 > 전전봉2 && 전봉24 < 전봉2 &&
전전봉12 < 전전봉2 && 전봉12 < 전봉24
)
{
buyFlag = true; ;
buyType = 1;
//buyFlag = true;
//buyType = 1;
}
else if (
candleData.IchimokData.상한선 < 현재봉2 && candleData_전봉.IchimokData.상한선 < 전봉2 &&
현재봉72 < 현재봉2 && 전봉72 < 전봉2 && 전봉12 > 전봉2 && 현재봉12 < 현재봉2
candleData_전봉.IchimokData.상한선 < 전봉2 && candleData_전전봉.IchimokData.상한선 < 전전봉2 &&
전봉72 < 전봉2 && 전전봉72 < 전전봉2 && 전전봉12 > 전전봉2 && 전봉12 < 전봉2
)
{
BuyShortStep[market + interval] = true;
@@ -595,7 +609,7 @@ namespace BitgetAPI.IndicatorConditionSetup
}
break;
case 2:
if (Bol12 > 전봉Bol12 && Bol24 > 전봉Bol24)
if (Bol12_Up < 전봉Bol12_Up && Bol24_Up < 전봉Bol24_Up)
{
sellFlag = true;
}
@@ -697,31 +711,32 @@ namespace BitgetAPI.IndicatorConditionSetup
if (BuyShortStep.ContainsKey(market + interval) && BuyShortStep[market + interval])
{
//72 > 24 > 12 > 2
if (현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2)
if (현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2 && candleData.IchimokData.하한선 > 현재봉2)
{
if (Bol12 > Bol24 && 전봉Bol12 > 전봉Bol24 &&
전봉Bol12 > Bol12 && 전봉Bol24 > Bol24 &&
전봉Bol12 - 전봉Bol24 > Bol12 - Bol24)
if (Bol12_Down > Bol24_Down && 전봉Bol12_Down > 전봉Bol24_Down &&
전봉Bol12_Down > Bol12_Down && 전봉Bol24_Down > Bol24_Down)
{
buyType = 2;
buyFlag = true;
}
}
else if (현재봉2 > 현재봉24)
BuyShortStep[market + interval] = false;
}
else
{
if (
candleData.IchimokData.상한선 < 현재봉2 && candleData_전봉.IchimokData.상한선 < 전봉2 &&
현재봉72 < 현재봉2 && 전봉72 < 전봉2 && 전봉24 < 전봉2 && 현재봉24 > 현재봉2 &&
전봉12 > 전봉2 && 현재봉12 > 현재봉24
candleData_전봉.IchimokData.상한선 < 전봉2 && candleData_전전봉.IchimokData.상한선 < 전전봉2 &&
전봉72 < 전봉2 && 전전봉72 < 전전봉2 && 전전봉24 < 전전봉2 && 전봉24 > 전봉2 &&
전전봉12 > 전전봉2 && 전봉12 > 전봉24
)
{
buyFlag = true;
buyType = 1;
//buyFlag = true;
//buyType = 1;
}
else if (
candleData.IchimokData.하한선 > 현재봉2 && candleData_전봉.IchimokData.하한선 > 전봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉12 < 전봉2 && 현재봉12 > 현재봉2
candleData_전봉.IchimokData.하한선 > 전봉2 && candleData_전전봉.IchimokData.하한선 > 전전봉2 &&
전봉72 > 전봉2 && 전전봉72 > 전전봉2 && 전전봉12 < 전전봉2 && 전봉12 > 전봉2
)
{
BuyShortStep[market + interval] = true;
@@ -859,7 +874,7 @@ namespace BitgetAPI.IndicatorConditionSetup
sellFlag = true;
break;
case 2:
if(Bol12 > 전봉Bol12 && Bol24 > 전봉Bol24)
if(Bol12_Down > 전봉Bol12_Down && Bol24_Down > 전봉Bol24_Down)
{
sellFlag = true;
}

View File

@@ -65,6 +65,7 @@ namespace BitgetAPI.IndicatorConditionSetup
candleData.movingAverageDataList[item.Key] = new MovingAverageData();
candleData.movingAverageDataList[item.Key].Value = datas.Sum(i => i.Close) / item.Key;
CalBolangerValue(datas, candleData.movingAverageDataList[item.Key], datas.Count - 1, item.Key);
CalBolangerValue(datas, candleData.movingAverageDataList[item.Key], datas.Count - 1, item.Key);
}
}
@@ -104,13 +105,13 @@ namespace BitgetAPI.IndicatorConditionSetup
//하향선
if (mvData.BolangerType == 0)
{
mvData.BolangerValue = average - mvData.BolangerSquared * Math.Sqrt(t_Close / period);
mvData.BolangerValue_Down = average - mvData.BolangerSquared * Math.Sqrt(t_Close / period);
}
//상향선
else if (mvData.BolangerType == 1)
{
mvData.BolangerValue = average + mvData.BolangerSquared * Math.Sqrt(t_Close / period);
mvData.BolangerValue_Up = average + mvData.BolangerSquared * Math.Sqrt(t_Close / period);
}
//기준선
else if (mvData.BolangerType == 2)

View File

@@ -12,7 +12,9 @@ namespace BitgetAPI.Data.IndicatorData
// MV Value
public double Value { get; set; }
// Bol Value
public double BolangerValue_Down { get; set; }
public double BolangerValue { get; set; }
public double BolangerValue_Up { get; set; }
// Bol Type 0 하향 1 상향 2기준
public int BolangerType { get; set; } = 0;
// Bol 편차