쌍바닥으로 변경
This commit is contained in:
@@ -279,7 +279,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var 전전봉3_Temp = candleDatas_Temp_List[i - 2].movingAverageDataList[3].Value;
|
var 전전봉3_Temp = candleDatas_Temp_List[i - 2].movingAverageDataList[3].Value;
|
||||||
var 전전전봉3_Temp = candleDatas_Temp_List[i - 3].movingAverageDataList[3].Value;
|
var 전전전봉3_Temp = candleDatas_Temp_List[i - 3].movingAverageDataList[3].Value;
|
||||||
var 전전전전봉3_Temp = candleDatas_Temp_List[i - 4].movingAverageDataList[3].Value;
|
var 전전전전봉3_Temp = candleDatas_Temp_List[i - 4].movingAverageDataList[3].Value;
|
||||||
var returnVal = Calculate전고점(market, strInterval, interval, 전봉3_Temp, 전전봉3_Temp, 전전전봉3_Temp, 전전전전봉3_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]);
|
var returnVal = Calculate전고점(market, strInterval, interval, 전봉3_Temp, 전전봉3_Temp, 전전전봉3_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -289,7 +289,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
BuyLongStep[market + strInterval] = false;
|
BuyLongStep[market + strInterval] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "1H")))
|
if (!(전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "1H")))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
#region 1분봉 처리
|
#region 1분봉 처리
|
||||||
@@ -334,88 +334,88 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전전전봉);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 5분봉 처리
|
#region 15분봉 처리
|
||||||
// 시간별로 정렬하기 (임시 리스트)
|
// 시간별로 정렬하기 (임시 리스트)
|
||||||
var candleDatas_5 = findedMarket.candleDataList[MCandleTimeType.M5];
|
var candleDatas_15 = findedMarket.candleDataList[MCandleTimeType.M15];
|
||||||
var candleDatas_5_정렬 = candleDatas_5.OrderBy(i => i.Argument).ToList();
|
var candleDatas_15_정렬 = candleDatas_15.OrderBy(i => i.Argument).ToList();
|
||||||
|
|
||||||
var candleData_5 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
var candleData_15 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_5 == null) continue;
|
if (candleData_15 == null) continue;
|
||||||
|
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15);
|
||||||
|
|
||||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||||
var candleData_5_전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
var candleData_15_전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_5_전봉 == null) continue;
|
if (candleData_15_전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전봉);
|
||||||
|
|
||||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||||
var candleData_5_전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
var candleData_15_전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_5_전전봉 == null) continue;
|
if (candleData_15_전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전봉);
|
||||||
|
|
||||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||||
var candleData_5_전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
var candleData_15_전전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_5_전전전봉 == null) continue;
|
if (candleData_15_전전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전전봉);
|
||||||
|
|
||||||
|
|
||||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||||
var candleData_5_전전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
var candleData_15_전전전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_5_전전전전봉 == null) continue;
|
if (candleData_15_전전전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전전전봉);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 30분봉 처리
|
#region 60분봉 처리
|
||||||
// 시간별로 정렬하기 (임시 리스트)
|
// 시간별로 정렬하기 (임시 리스트)
|
||||||
var candleDatas_30 = findedMarket.candleDataList[MCandleTimeType.M30];
|
var candleDatas_60 = findedMarket.candleDataList[MCandleTimeType.H1];
|
||||||
var candleDatas_30_정렬 = candleDatas_30.OrderBy(i => i.Argument).ToList();
|
var candleDatas_60_정렬 = candleDatas_60.OrderBy(i => i.Argument).ToList();
|
||||||
|
|
||||||
var candleData_30 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument);
|
var candleData_60 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_30 == null) continue;
|
if (candleData_60 == null) continue;
|
||||||
|
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60);
|
||||||
|
|
||||||
candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1);
|
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||||
var candleData_30_전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument);
|
var candleData_60_전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_30_전봉 == null) continue;
|
if (candleData_60_전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전봉);
|
||||||
|
|
||||||
candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1);
|
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||||
var candleData_30_전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument);
|
var candleData_60_전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_30_전전봉 == null) continue;
|
if (candleData_60_전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전봉);
|
||||||
|
|
||||||
candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1);
|
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||||
var candleData_30_전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument);
|
var candleData_60_전전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_30_전전전봉 == null) continue;
|
if (candleData_60_전전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전전봉);
|
||||||
|
|
||||||
|
|
||||||
candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1);
|
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||||
var candleData_30_전전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument);
|
var candleData_60_전전전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||||
|
|
||||||
if (candleData_30_전전전전봉 == null) continue;
|
if (candleData_60_전전전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전전전봉);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선
|
if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선
|
||||||
@@ -482,7 +482,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{
|
{
|
||||||
|
|
||||||
#region Main 봉 계산
|
#region Main 봉 계산
|
||||||
|
var 전전전봉2 = candleData_전전전봉.movingAverageDataList[2].Value;
|
||||||
var 전전전봉3 = candleData_전전전봉.movingAverageDataList[3].Value;
|
var 전전전봉3 = candleData_전전전봉.movingAverageDataList[3].Value;
|
||||||
var 전전전봉4 = candleData_전전전봉.movingAverageDataList[4].Value;
|
var 전전전봉4 = candleData_전전전봉.movingAverageDataList[4].Value;
|
||||||
var 전전전봉8 = candleData_전전전봉.movingAverageDataList[8].Value;
|
var 전전전봉8 = candleData_전전전봉.movingAverageDataList[8].Value;
|
||||||
@@ -491,9 +491,9 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var 전전전봉36 = candleData_전전전봉.movingAverageDataList[36].Value;
|
var 전전전봉36 = candleData_전전전봉.movingAverageDataList[36].Value;
|
||||||
var 전전전봉72 = candleData_전전전봉.movingAverageDataList[72].Value;
|
var 전전전봉72 = candleData_전전전봉.movingAverageDataList[72].Value;
|
||||||
var 전전전봉40 = candleData_전전전봉.movingAverageDataList[40].Value;
|
var 전전전봉40 = candleData_전전전봉.movingAverageDataList[40].Value;
|
||||||
|
var 전전전전봉2 = candleData_전전전전봉.movingAverageDataList[2].Value;
|
||||||
var 전전전전봉3 = candleData_전전전전봉.movingAverageDataList[3].Value;
|
var 전전전전봉3 = candleData_전전전전봉.movingAverageDataList[3].Value;
|
||||||
|
var 전전봉2 = candleData_전전봉.movingAverageDataList[2].Value;
|
||||||
var 전전봉3 = candleData_전전봉.movingAverageDataList[3].Value;
|
var 전전봉3 = candleData_전전봉.movingAverageDataList[3].Value;
|
||||||
var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value;
|
var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value;
|
||||||
var 전전봉8 = candleData_전전봉.movingAverageDataList[8].Value;
|
var 전전봉8 = candleData_전전봉.movingAverageDataList[8].Value;
|
||||||
@@ -510,7 +510,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
//var 전전봉240 = candleData_전전봉.movingAverageDataList[240].Value;
|
//var 전전봉240 = candleData_전전봉.movingAverageDataList[240].Value;
|
||||||
var 전전봉80 = candleData_전전봉.movingAverageDataList[80].Value;
|
var 전전봉80 = candleData_전전봉.movingAverageDataList[80].Value;
|
||||||
//var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value;
|
//var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value;
|
||||||
|
var 전봉2 = candleData_전봉.movingAverageDataList[2].Value;
|
||||||
var 전봉3 = candleData_전봉.movingAverageDataList[3].Value;
|
var 전봉3 = candleData_전봉.movingAverageDataList[3].Value;
|
||||||
var 전봉4 = candleData_전봉.movingAverageDataList[4].Value;
|
var 전봉4 = candleData_전봉.movingAverageDataList[4].Value;
|
||||||
var 전봉8 = candleData_전봉.movingAverageDataList[8].Value;
|
var 전봉8 = candleData_전봉.movingAverageDataList[8].Value;
|
||||||
@@ -528,7 +528,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var 전봉160 = candleData_전봉.movingAverageDataList[160].Value;
|
var 전봉160 = candleData_전봉.movingAverageDataList[160].Value;
|
||||||
//var 전봉240 = candleData_전봉.movingAverageDataList[240].Value;
|
//var 전봉240 = candleData_전봉.movingAverageDataList[240].Value;
|
||||||
//var 전봉480 = candleData_전봉.movingAverageDataList[480].Value;
|
//var 전봉480 = candleData_전봉.movingAverageDataList[480].Value;
|
||||||
|
var 현재봉2 = candleData.movingAverageDataList[2].Value;
|
||||||
var 현재봉3 = candleData.movingAverageDataList[3].Value;
|
var 현재봉3 = candleData.movingAverageDataList[3].Value;
|
||||||
var 현재봉4 = candleData.movingAverageDataList[4].Value;
|
var 현재봉4 = candleData.movingAverageDataList[4].Value;
|
||||||
var 현재봉8 = candleData.movingAverageDataList[8].Value;
|
var 현재봉8 = candleData.movingAverageDataList[8].Value;
|
||||||
@@ -576,29 +576,40 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var Bol72_Up = candleData.movingAverageDataList[72].BolangerValue_Up;
|
var Bol72_Up = candleData.movingAverageDataList[72].BolangerValue_Up;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var 현재봉3_5 = candleData_5.movingAverageDataList[3].Value;
|
var 현재봉2_15 = candleData_15.movingAverageDataList[2].Value;
|
||||||
var 전봉3_5 = candleData_5_전봉.movingAverageDataList[3].Value;
|
var 전봉2_15 = candleData_15_전봉.movingAverageDataList[2].Value;
|
||||||
var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value;
|
var 전전봉2_15 = candleData_15_전전봉.movingAverageDataList[2].Value;
|
||||||
var 전전전봉3_5 = candleData_5_전전전봉.movingAverageDataList[3].Value;
|
var 전전전봉2_15 = candleData_15_전전전봉.movingAverageDataList[2].Value;
|
||||||
var 전전전전봉3_5 = candleData_5_전전전전봉.movingAverageDataList[3].Value;
|
var 전전전전봉2_15 = candleData_15_전전전전봉.movingAverageDataList[2].Value;
|
||||||
|
|
||||||
var 현재봉4_5 = candleData_5.movingAverageDataList[4].Value;
|
var 현재봉3_15 = candleData_15.movingAverageDataList[3].Value;
|
||||||
var 전봉4_5 = candleData_5_전봉.movingAverageDataList[4].Value;
|
var 전봉3_15 = candleData_15_전봉.movingAverageDataList[3].Value;
|
||||||
var 전전봉4_5 = candleData_5_전전봉.movingAverageDataList[4].Value;
|
var 전전봉3_15 = candleData_15_전전봉.movingAverageDataList[3].Value;
|
||||||
var 전전전봉4_5 = candleData_5_전전전봉.movingAverageDataList[4].Value;
|
var 전전전봉3_15 = candleData_15_전전전봉.movingAverageDataList[3].Value;
|
||||||
|
var 전전전전봉3_15 = candleData_15_전전전전봉.movingAverageDataList[3].Value;
|
||||||
|
|
||||||
|
var 현재봉4_15 = candleData_15.movingAverageDataList[4].Value;
|
||||||
|
var 전봉4_15 = candleData_15_전봉.movingAverageDataList[4].Value;
|
||||||
|
var 전전봉4_15 = candleData_15_전전봉.movingAverageDataList[4].Value;
|
||||||
|
var 전전전봉4_15 = candleData_15_전전전봉.movingAverageDataList[4].Value;
|
||||||
|
|
||||||
|
|
||||||
|
var 현재봉2_60 = candleData_60.movingAverageDataList[2].Value;
|
||||||
|
var 전봉2_60 = candleData_60_전봉.movingAverageDataList[2].Value;
|
||||||
|
var 전전봉2_60 = candleData_60_전전봉.movingAverageDataList[2].Value;
|
||||||
|
var 전전전봉2_60 = candleData_60_전전전봉.movingAverageDataList[2].Value;
|
||||||
|
var 전전전전봉2_60 = candleData_60_전전전전봉.movingAverageDataList[2].Value;
|
||||||
|
|
||||||
var 현재봉3_30 = candleData_30.movingAverageDataList[3].Value;
|
var 현재봉3_60 = candleData_60.movingAverageDataList[3].Value;
|
||||||
var 전봉3_30 = candleData_30_전봉.movingAverageDataList[3].Value;
|
var 전봉3_60 = candleData_60_전봉.movingAverageDataList[3].Value;
|
||||||
var 전전봉3_30 = candleData_30_전전봉.movingAverageDataList[3].Value;
|
var 전전봉3_60 = candleData_60_전전봉.movingAverageDataList[3].Value;
|
||||||
var 전전전봉3_30 = candleData_30_전전전봉.movingAverageDataList[3].Value;
|
var 전전전봉3_60 = candleData_60_전전전봉.movingAverageDataList[3].Value;
|
||||||
var 전전전전봉3_30 = candleData_30_전전전전봉.movingAverageDataList[3].Value;
|
var 전전전전봉3_60 = candleData_60_전전전전봉.movingAverageDataList[3].Value;
|
||||||
|
|
||||||
var 현재봉4_30 = candleData_30.movingAverageDataList[4].Value;
|
var 현재봉4_60 = candleData_60.movingAverageDataList[4].Value;
|
||||||
var 전봉4_30 = candleData_30_전봉.movingAverageDataList[4].Value;
|
var 전봉4_60 = candleData_60_전봉.movingAverageDataList[4].Value;
|
||||||
var 전전봉4_30 = candleData_30_전전봉.movingAverageDataList[4].Value;
|
var 전전봉4_60 = candleData_60_전전봉.movingAverageDataList[4].Value;
|
||||||
var 전전전봉4_30 = candleData_30_전전전봉.movingAverageDataList[4].Value;
|
var 전전전봉4_60 = candleData_60_전전전봉.movingAverageDataList[4].Value;
|
||||||
|
|
||||||
|
|
||||||
var oneList = new List<double>() {
|
var oneList = new List<double>() {
|
||||||
@@ -615,15 +626,15 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var 저고점_1 = 전저고점[market + "1m"];
|
//var 저고점_1 = 전저고점[market + "1m"];
|
||||||
var 저고점_5 = 전저고점[market + "5m"];
|
var 저고점_15 = 전저고점[market + "15m"];
|
||||||
var 저고점_30 = 전저고점[market + "1H"];
|
var 저고점_60 = 전저고점[market + "1H"];
|
||||||
|
|
||||||
var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉3, 전전봉3, 전전전봉3, 전전전전봉3, candleData);
|
//var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉2, 전전봉2, 전전전봉2, candleData);
|
||||||
|
//if (!returnVal) continue;
|
||||||
|
var returnVal = Calculate전고점(market, "15m", MCandleTimeType.M15, 전봉3_15, 전전봉3_15, 전전전봉3_15, candleData_15);
|
||||||
if (!returnVal) continue;
|
if (!returnVal) continue;
|
||||||
returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉3_5, 전전봉3_5, 전전전봉3_5, 전전전전봉3_5, candleData_5);
|
returnVal = Calculate전고점(market, "1H", MCandleTimeType.H1, 전봉3_60, 전전봉3_60, 전전전봉3_60, candleData_60);
|
||||||
if (!returnVal) continue;
|
|
||||||
returnVal = Calculate전고점(market, "30M", MCandleTimeType.M30, 전봉3_30, 전전봉3_30, 전전전전봉3_30, 전전전봉3_30, candleData_30);
|
|
||||||
if (!returnVal) continue;
|
if (!returnVal) continue;
|
||||||
|
|
||||||
|
|
||||||
@@ -649,21 +660,14 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var buyFlag = false;
|
var buyFlag = false;
|
||||||
|
|
||||||
// 60분봉
|
// 60분봉
|
||||||
var flag_30 =
|
|
||||||
(저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] > 저고점_30["전저가"]
|
|
||||||
&& 전봉3_30 < 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"] &&
|
|
||||||
저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < candleData_30.Close && candleData_30_전봉.Open < candleData_30_전봉.Close)
|
|
||||||
|
|
||||||
|| (저고점_30["전전전고가"] > 저고점_30 ["전전고가"] && 저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전고가"] > 저고점_30["전저가"] && 저고점_30["전고가"] > 저고점_30["전전저가"]
|
var flag_60 = 저고점_60["Type"] == 0 && 저고점_60["전저가"] < 현재봉3_60 && 저고점_60["전고가"] > 현재봉3_60;
|
||||||
&& 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 > 저고점_30["전고가"] && 전봉3_30 < 저고점_30["전고가"] && candleData_30.Open < candleData_30.Close && candleData_30_전봉.Open < candleData_30_전봉.Close);
|
var flag_15 = 저고점_15["Type"] == 0 && 저고점_60["전저가"] < 현재봉3_15 && 저고점_60["전고가"] < 현재봉3_15
|
||||||
|
&& 저고점_60["전저가"] > 저고점_60["전전저가"]
|
||||||
|
&& 저고점_60["전저가"] < 저고점_60["전고가"]
|
||||||
|
&& 저고점_60["전고가"] > 저고점_60["전전저가"] && 저고점_60["전고가"]< 저고점_60["전전고가"];
|
||||||
|
|
||||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"])
|
if (flag_60 && flag_15)
|
||||||
|| (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 > 저고점_5["전고가"])
|
|
||||||
|| (저고점_5["전전저가"] < 저고점_5["전저가"] && 저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전고가"] < 저고점_5["전고가"] && 저고점_5["전전전고가"] < 저고점_5["전전고가"]);
|
|
||||||
|
|
||||||
var flag_1 = 현재봉4 > oneList.Max();
|
|
||||||
|
|
||||||
if (flag_30 && flag_5 && flag_1)
|
|
||||||
{
|
{
|
||||||
buyFlag = true;
|
buyFlag = true;
|
||||||
}
|
}
|
||||||
@@ -691,7 +695,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{ "MarketName", market },
|
{ "MarketName", market },
|
||||||
{ "BuyDate", nowTime },
|
{ "BuyDate", nowTime },
|
||||||
{ "Price", price },
|
{ "Price", price },
|
||||||
{ "Flag", 저고점_30["전고가"] > 저고점_30["전전고가"]},
|
{ "Flag", 저고점_60["전고가"] > 저고점_60["전전고가"]},
|
||||||
{ "MCandleTimeType", (int)interval },
|
{ "MCandleTimeType", (int)interval },
|
||||||
{ "CandleTime", candleData.Argument },
|
{ "CandleTime", candleData.Argument },
|
||||||
{ "Candle", candleData }
|
{ "Candle", candleData }
|
||||||
@@ -762,29 +766,11 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var sellFlag = false;
|
var sellFlag = false;
|
||||||
|
|
||||||
|
//예외처리
|
||||||
if (flag)
|
if (저고점_60["전저가"] < 현재봉3_60)
|
||||||
{
|
|
||||||
if (저고점_30["전고가"] < 저고점_30["전전고가"])
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (저고점_30["전전고가"] > 전봉3_30)
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (저고점_30["전저가"] > 전봉3_30)
|
|
||||||
sellFlag = true;
|
sellFlag = true;
|
||||||
|
|
||||||
if (저고점_30["전고가"] > 저고점_30["전전고가"])
|
if(전봉3_15 < 전전봉3_15) sellFlag = true;
|
||||||
{
|
|
||||||
buyItem["Flag"] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sellFlag)
|
if (sellFlag)
|
||||||
{
|
{
|
||||||
@@ -878,24 +864,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var buyFlag = false;
|
var buyFlag = false;
|
||||||
|
|
||||||
//var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"])
|
var flag_60 = 저고점_60["Type"] == 1 && 저고점_60["전고가"] > 현재봉3_60 && 저고점_60["전저가"] < 현재봉3_60;
|
||||||
// || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
var flag_15 = 저고점_15["Type"] == 1 && 저고점_60["전고가"] > 현재봉3_15 && 저고점_60["전저가"] > 현재봉3_15
|
||||||
|
&& 저고점_60["전고가"] < 저고점_60["전전고가"]
|
||||||
|
&& 저고점_60["전고가"] > 저고점_60["전저가"]
|
||||||
|
&& 저고점_60["전저가"] < 저고점_60["전전고가"] && 저고점_60["전저가"] > 저고점_60["전전저가"];
|
||||||
|
|
||||||
var flag_30 =
|
if (flag_60 && flag_15)
|
||||||
(저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"]
|
|
||||||
&& 전봉3_30 > 저고점_30["전저가"] && candleData_30.Close < 저고점_30["전저가"] &&
|
|
||||||
저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && candleData_30.Open > candleData_30.Close && candleData_30_전봉.Open > candleData_30_전봉.Close)
|
|
||||||
|
|
||||||
|| (저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전저가"] < 저고점_30["전고가"] && 저고점_30["전저가"] < 저고점_30["전전고가"]
|
|
||||||
&& 저고점_30["전전고가"] > 저고점_30["전고가"] && candleData_30.Close < 저고점_30["전저가"] && 전봉3_30 > 저고점_30["전저가"] && candleData_30.Open > candleData_30.Close && candleData_30_전봉.Open > candleData_30_전봉.Close);
|
|
||||||
|
|
||||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"])
|
|
||||||
|| (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 < 저고점_5["전저가"])
|
|
||||||
|| (저고점_5["전전저가"] > 저고점_5["전저가"] && 저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 저고점_5["전전전고가"] > 저고점_5["전전고가"]);
|
|
||||||
|
|
||||||
var flag_1 = 현재봉3 < oneList.Min();
|
|
||||||
|
|
||||||
if (flag_30 && flag_5 && flag_1)
|
|
||||||
{
|
{
|
||||||
buyFlag = true;
|
buyFlag = true;
|
||||||
}
|
}
|
||||||
@@ -925,7 +900,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{ "MarketName", market },
|
{ "MarketName", market },
|
||||||
{ "BuyDate", nowTime },
|
{ "BuyDate", nowTime },
|
||||||
{ "Price", price },
|
{ "Price", price },
|
||||||
{ "Flag", 저고점_30["전저가"] < 저고점_30["전전저가"]},
|
{ "Flag", 저고점_60["전저가"] < 저고점_60["전전저가"]},
|
||||||
{ "MCandleTimeType", (int)interval },
|
{ "MCandleTimeType", (int)interval },
|
||||||
{ "CandleTime", candleData.Argument },
|
{ "CandleTime", candleData.Argument },
|
||||||
{ "Candle", candleData }
|
{ "Candle", candleData }
|
||||||
@@ -994,30 +969,12 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sellFlag = false;
|
var sellFlag = false;
|
||||||
|
//예외처리
|
||||||
|
if (저고점_60["전고가"] > 현재봉3_60)
|
||||||
|
sellFlag = true;
|
||||||
|
|
||||||
|
if (전봉3_15 > 전전봉3_15) sellFlag = true;
|
||||||
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
if (저고점_30["전저가"] > 저고점_30["전전저가"])
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
if (저고점_30["전전저가"] < 전봉3_30)
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (저고점_30["전고가"] < 전봉3_30)
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
if (저고점_30["전저가"] < 저고점_30["전전저가"])
|
|
||||||
{
|
|
||||||
buyItem["Flag"] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sellFlag)
|
if (sellFlag)
|
||||||
{
|
{
|
||||||
@@ -1104,15 +1061,15 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Calculate전고점(string market, string strInterval, MCandleTimeType type, double 전봉3, double 전전봉3, double 전전전봉3, double 전전전전봉3, CandleData candleData)
|
public bool Calculate전고점(string market, string strInterval, MCandleTimeType type, double 전봉3, double 전전봉3, double 전전전봉3, CandleData candleData)
|
||||||
{
|
{
|
||||||
|
|
||||||
var 저고점 = 전저고점[market + strInterval];
|
var 저고점 = 전저고점[market + strInterval];
|
||||||
|
|
||||||
//전저가
|
//전저가
|
||||||
if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds()
|
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||||
&& 전전전봉3 < 전전전전봉3)
|
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type)
|
||||||
{
|
{
|
||||||
저고점["tempLow2Val"] = 저고점["tempLowVal"];
|
저고점["tempLow2Val"] = 저고점["tempLowVal"];
|
||||||
저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||||
@@ -1121,18 +1078,29 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
저고점["전전전저가"] = 저고점["전전저가"];
|
저고점["전전전저가"] = 저고점["전전저가"];
|
||||||
저고점["전전저가"] = 저고점["전저가"];
|
저고점["전전저가"] = 저고점["전저가"];
|
||||||
저고점["전저가"] = 전전봉3;
|
저고점["전저가"] = 전전봉3;
|
||||||
|
저고점["Type"] = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
else if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds()
|
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||||
&& 전전전봉3 > 전전전전봉3)
|
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type)
|
||||||
{
|
{
|
||||||
|
//이전으로 초기화 작업(High)
|
||||||
|
저고점["전고가"] = 저고점["전전고가"];
|
||||||
|
저고점["전전고가"] = 저고점["전전전고가"];
|
||||||
|
저고점["전전전고가"] = 저고점["전전전전고가"];
|
||||||
|
저고점["Type"] = 0;
|
||||||
|
저고점["전전전전고가"] = 저고점["switchLowVal"];
|
||||||
|
저고점["tempHighVal"] = 저고점["tempHigh2Val"];
|
||||||
|
|
||||||
|
if (저고점["전저가"] > 전전봉3)
|
||||||
|
저고점["전저가"] = 전전봉3;
|
||||||
}
|
}
|
||||||
|
|
||||||
//전고가
|
//전고가
|
||||||
if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||||
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds()
|
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||||
&& 전전전봉3 > 전전전전봉3)
|
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type)
|
||||||
{
|
{
|
||||||
저고점["tempHigh2Val"] = 저고점["tempHighVal"];
|
저고점["tempHigh2Val"] = 저고점["tempHighVal"];
|
||||||
저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||||
@@ -1140,6 +1108,22 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
저고점["전전전전고가"] = 저고점["전전전고가"];
|
저고점["전전전전고가"] = 저고점["전전전고가"];
|
||||||
저고점["전전전고가"] = 저고점["전전고가"];
|
저고점["전전전고가"] = 저고점["전전고가"];
|
||||||
저고점["전전고가"] = 저고점["전고가"];
|
저고점["전전고가"] = 저고점["전고가"];
|
||||||
|
저고점["Type"] = 1;
|
||||||
|
저고점["전고가"] = 전전봉3;
|
||||||
|
}
|
||||||
|
else if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||||
|
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||||
|
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type)
|
||||||
|
{
|
||||||
|
//이전으로 초기화 작업(Low)
|
||||||
|
저고점["전저가"] = 저고점["전전저가"];
|
||||||
|
저고점["전전저가"] = 저고점["전전전저가"];
|
||||||
|
저고점["전전전저가"] = 저고점["전전전전저가"];
|
||||||
|
저고점["전전전전저가"] = 저고점["switchHighVal"];
|
||||||
|
저고점["Type"] = 1;
|
||||||
|
저고점["tempLowVal"] = 저고점["tempLow2Val"];
|
||||||
|
|
||||||
|
if (저고점["전고가"] < 전전봉3)
|
||||||
저고점["전고가"] = 전전봉3;
|
저고점["전고가"] = 전전봉3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user