수조ㅓㅇ

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

View File

@@ -65,6 +65,7 @@ namespace BitgetAPI.IndicatorConditionSetup
candleData.movingAverageDataList[item.Key] = new MovingAverageData(); candleData.movingAverageDataList[item.Key] = new MovingAverageData();
candleData.movingAverageDataList[item.Key].Value = datas.Sum(i => i.Close) / item.Key; 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);
CalBolangerValue(datas, candleData.movingAverageDataList[item.Key], datas.Count - 1, item.Key);
} }
} }
@@ -104,13 +105,13 @@ namespace BitgetAPI.IndicatorConditionSetup
//하향선 //하향선
if (mvData.BolangerType == 0) 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) 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) else if (mvData.BolangerType == 2)

View File

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