전저가 전고가 계산 방식에 초단위를 추가(초단위떄문에 1개 짜리가 잡히는 순간이 있음)
This commit is contained in:
@@ -582,11 +582,21 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_5 = candleData_5_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var 현재봉4_5 = candleData_5.movingAverageDataList[4].Value;
|
||||
var 전봉4_5 = candleData_5_전봉.movingAverageDataList[4].Value;
|
||||
var 전전봉4_5 = candleData_5_전전봉.movingAverageDataList[4].Value;
|
||||
var 전전전봉4_5 = candleData_5_전전전봉.movingAverageDataList[4].Value;
|
||||
|
||||
var 현재봉3_30 = candleData_30.movingAverageDataList[3].Value;
|
||||
var 전봉3_30 = candleData_30_전봉.movingAverageDataList[3].Value;
|
||||
var 전전봉3_30 = candleData_30_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_30 = candleData_30_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var 현재봉4_30 = candleData_30.movingAverageDataList[4].Value;
|
||||
var 전봉4_30 = candleData_30_전봉.movingAverageDataList[4].Value;
|
||||
var 전전봉4_30 = candleData_30_전전봉.movingAverageDataList[4].Value;
|
||||
var 전전전봉4_30 = candleData_30_전전전봉.movingAverageDataList[4].Value;
|
||||
|
||||
var oneList = new List<double>() {
|
||||
현재봉24,
|
||||
현재봉48,
|
||||
@@ -605,11 +615,11 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var 저고점_5 = 전저고점[market + "5m"];
|
||||
var 저고점_30 = 전저고점[market + "30m"];
|
||||
|
||||
var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉3, 전전봉3, 전전전봉3, candleData);
|
||||
var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉4, 전전봉4, 전전전봉4, candleData);
|
||||
if (!returnVal) continue;
|
||||
returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉3_5, 전전봉3_5, 전전전봉3_5, candleData_5);
|
||||
returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉4_5, 전전봉4_5, 전전전봉4_5, candleData_5);
|
||||
if (!returnVal) continue;
|
||||
returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉3_30, 전전봉3_30, 전전전봉3_30, candleData_30);
|
||||
returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉4_30, 전전봉4_30, 전전전봉4_30, candleData_30);
|
||||
if (!returnVal) continue;
|
||||
|
||||
|
||||
@@ -636,16 +646,15 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
// 30분봉
|
||||
var flag_30 =
|
||||
//(저고점_30["전전전저가"] > 저고점_30["전전저가"]
|
||||
// && (저고점_30["전전저가"] < 전봉3 && 저고점_30["전전저가"] < 전전봉3 && 저고점_30["전전저가"] < 현재봉3 && 전전봉3 > 전봉3 && 전봉3 < 현재봉3)
|
||||
//&& 현재봉3_30 > 저고점_30["전고가"]) ||
|
||||
(저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 전봉3_30 < 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]);
|
||||
//|| (저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]);
|
||||
(저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] > 저고점_30["전저가"] && 전봉4_30 < 저고점_30["전고가"] && 현재봉4_30 > 저고점_30["전고가"] &&
|
||||
저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"])
|
||||
|| (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 전봉4_30 < 저고점_30["전고가"] && 현재봉4_30 > 저고점_30["전고가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 > 저고점_5["전고가"]);
|
||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉4_5 > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉4_5 > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전저가"] < 저고점_5["전저가"] && 저고점_5["전전고가"] < 저고점_5["전고가"]);
|
||||
|
||||
var flag_1 = 현재봉3 > oneList.Max();
|
||||
var flag_1 = 현재봉4 > oneList.Max();
|
||||
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
@@ -738,8 +747,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
|
||||
var sellFlag = false;
|
||||
if (저고점_30["전저가"] > 전봉3_30)
|
||||
sellFlag = true;
|
||||
|
||||
|
||||
if (flag)
|
||||
{
|
||||
@@ -748,17 +756,15 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (저고점_30["전전고가"] > 현재봉3_30)
|
||||
if (저고점_30["전전고가"] > 현재봉4_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (저고점_30["전저가"] > 현재봉3_30)
|
||||
{
|
||||
if (저고점_30["전저가"] > 현재봉4_30)
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (저고점_30["전고가"] > 저고점_30["전전고가"])
|
||||
{
|
||||
@@ -862,16 +868,14 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
// || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_30 =
|
||||
//(저고점_30["전전전고가"] < 저고점_30["전전고가"]
|
||||
//&& (저고점_30["전전고가"] > 전봉3 && 저고점_30["전전고가"] > 전전봉3 && 저고점_30["전전고가"] > 현재봉3 && 전전봉3 < 전봉3 && 전봉3 > 현재봉3)
|
||||
//&& 현재봉3_30 < 저고점_30["전저가"]) ||
|
||||
(저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 전봉3_30 > 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
//|| (저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
(저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 전봉4_30 > 저고점_30["전저가"] && 현재봉4_30 < 저고점_30["전저가"] &&
|
||||
저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"])
|
||||
|| (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 전봉4_30 > 저고점_30["전저가"] && 현재봉4_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 < 저고점_5["전저가"]);
|
||||
|
||||
var flag_1 = 현재봉3 < oneList.Min();
|
||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉4_5 < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉4_5 < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전저가"] > 저고점_5["전저가"] && 저고점_5["전전고가"] > 저고점_5["전고가"]);
|
||||
var flag_1 = 현재봉4 < oneList.Min();
|
||||
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
@@ -963,23 +967,20 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
var sellFlag = false;
|
||||
|
||||
if (저고점_30["전고가"] < 전봉3_30)
|
||||
sellFlag = true;
|
||||
|
||||
if (flag)
|
||||
{
|
||||
if (저고점_30["전저가"] > 저고점_30["전전저가"])
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
if (저고점_30["전전저가"] < 현재봉3_30)
|
||||
if (저고점_30["전전저가"] < 현재봉4_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (저고점_30["전고가"] < 현재봉3_30)
|
||||
if (저고점_30["전고가"] < 현재봉4_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
@@ -1082,7 +1083,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
//전저가
|
||||
if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type)
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type + 59.9999)
|
||||
{
|
||||
저고점["tempLow2Val"] = 저고점["tempLowVal"];
|
||||
저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||
@@ -1095,7 +1096,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
else if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type)
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type + 59.9999)
|
||||
{
|
||||
//이전으로 초기화 작업(High)
|
||||
저고점["전고가"] = 저고점["전전고가"];
|
||||
@@ -1111,7 +1112,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
//전고가
|
||||
if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type)
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type + 59.9999)
|
||||
{
|
||||
저고점["tempHigh2Val"] = 저고점["tempHighVal"];
|
||||
저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||
@@ -1123,7 +1124,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
else if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type)
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type + 59.9999)
|
||||
{
|
||||
//이전으로 초기화 작업(Low)
|
||||
저고점["전저가"] = 저고점["전전저가"];
|
||||
|
||||
Reference in New Issue
Block a user