1. 실제 고가 저가 뚫었는데 사는거로 변경

2. 역헤드앤숄더, 그냥 헤드앤 숄더일경우에 삼(롱,숏모두 다 포함)
3. N모양 역 N모양에도 살수 있도록 수정
This commit is contained in:
kyh
2025-03-04 13:40:34 +09:00
parent 492ff231e4
commit 0f85b388bb
2 changed files with 311 additions and 96 deletions

View File

@@ -251,6 +251,10 @@ namespace BitgetAPI.IndicatorConditionSetup
dic.Add("tempLowVal", 0);
dic.Add("tempHigh2Val", 0);
dic.Add("tempLow2Val", 0);
dic.Add("tempHigh3Val", 0);
dic.Add("tempLow3Val", 0);
dic.Add("tempHigh4Val", 0);
dic.Add("tempLow4Val", 0);
dic.Add("switchLowVal", 0);
dic.Add("switchHighVal", 0);
전저고점.Add(market + strInterval, dic);
@@ -274,12 +278,12 @@ namespace BitgetAPI.IndicatorConditionSetup
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_Temp_List, candleData_Main);
if (i > 210)
{
var 현재봉3_Temp = candleDatas_Temp_List[i].movingAverageDataList[3].Value;
var 전봉3_Temp = candleDatas_Temp_List[i - 1].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 - 4].movingAverageDataList[3].Value;
var returnVal = Calculate전고점(market, strInterval, interval, 전봉3_Temp, 전전봉3_Temp, 전전전봉3_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]);
var 현재봉5_Temp = candleDatas_Temp_List[i].movingAverageDataList[5].Value;
var 전봉5_Temp = candleDatas_Temp_List[i - 1].movingAverageDataList[5].Value;
var 전전봉5_Temp = candleDatas_Temp_List[i - 2].movingAverageDataList[5].Value;
var 전전전봉5_Temp = candleDatas_Temp_List[i - 3].movingAverageDataList[5].Value;
var 전전전전봉5_Temp = candleDatas_Temp_List[i - 4].movingAverageDataList[5].Value;
var returnVal = Calculate전고점(market, strInterval, interval, 전봉5_Temp, 전전봉5_Temp, 전전전봉5_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]);
}
}
}
@@ -289,12 +293,14 @@ namespace BitgetAPI.IndicatorConditionSetup
BuyLongStep[market + strInterval] = false;
}
if (!(전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "1H")))
continue;
if (!전저고점.ContainsKey(market + "30m")) continue;
#region 임시 15분봉 처리
//if (!(전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "1H")))
// continue;
#region 5분봉 처리 -> 임시로 30분봉 처리
// 시간별로 정렬하기 (임시 리스트)
var candleDatas = findedMarket.candleDataList[MCandleTimeType.M15];
var candleDatas = findedMarket.candleDataList[MCandleTimeType.M30];
var candleDatas_정렬 = candleDatas.OrderBy(i => i.Argument).ToList();
var candleData = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument);
@@ -335,6 +341,7 @@ namespace BitgetAPI.IndicatorConditionSetup
#endregion
#region 15분봉 처리
/*
// 시간별로 정렬하기 (임시 리스트)
var candleDatas_15 = findedMarket.candleDataList[MCandleTimeType.M15];
var candleDatas_15_정렬 = candleDatas_15.OrderBy(i => i.Argument).ToList();
@@ -374,10 +381,12 @@ namespace BitgetAPI.IndicatorConditionSetup
if (candleData_15_전전전전봉 == null) continue;
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전전전봉);
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전전전봉);
*/
#endregion
#region 60분봉 처리
// 시간별로 정렬하기 (임시 리스트)
/*
var candleDatas_60 = findedMarket.candleDataList[MCandleTimeType.H1];
var candleDatas_60_정렬 = candleDatas_60.OrderBy(i => i.Argument).ToList();
@@ -416,6 +425,7 @@ namespace BitgetAPI.IndicatorConditionSetup
if (candleData_60_전전전전봉 == null) continue;
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전전전봉);
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전전전봉);
*/
#endregion
if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선
@@ -485,6 +495,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var 전전전봉2 = candleData_전전전봉.movingAverageDataList[2].Value;
var 전전전봉3 = candleData_전전전봉.movingAverageDataList[3].Value;
var 전전전봉4 = candleData_전전전봉.movingAverageDataList[4].Value;
var 전전전봉5 = candleData_전전전봉.movingAverageDataList[5].Value;
var 전전전봉8 = candleData_전전전봉.movingAverageDataList[8].Value;
var 전전전봉12 = candleData_전전전봉.movingAverageDataList[12].Value;
var 전전전봉24 = candleData_전전전봉.movingAverageDataList[24].Value;
@@ -496,6 +507,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var 전전봉2 = candleData_전전봉.movingAverageDataList[2].Value;
var 전전봉3 = candleData_전전봉.movingAverageDataList[3].Value;
var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value;
var 전전봉5 = candleData_전전봉.movingAverageDataList[5].Value;
var 전전봉8 = candleData_전전봉.movingAverageDataList[8].Value;
var 전전봉12 = candleData_전전봉.movingAverageDataList[12].Value;
var 전전봉24 = candleData_전전봉.movingAverageDataList[24].Value;
@@ -513,6 +525,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var 전봉2 = candleData_전봉.movingAverageDataList[2].Value;
var 전봉3 = candleData_전봉.movingAverageDataList[3].Value;
var 전봉4 = candleData_전봉.movingAverageDataList[4].Value;
var 전봉5 = candleData_전봉.movingAverageDataList[5].Value;
var 전봉8 = candleData_전봉.movingAverageDataList[8].Value;
var 전봉12 = candleData_전봉.movingAverageDataList[12].Value;
var 전봉24 = candleData_전봉.movingAverageDataList[24].Value;
@@ -531,6 +544,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var 현재봉2 = candleData.movingAverageDataList[2].Value;
var 현재봉3 = candleData.movingAverageDataList[3].Value;
var 현재봉4 = candleData.movingAverageDataList[4].Value;
var 현재봉5 = candleData.movingAverageDataList[5].Value;
var 현재봉8 = candleData.movingAverageDataList[8].Value;
var 현재봉12 = candleData.movingAverageDataList[12].Value;
var 현재봉24 = candleData.movingAverageDataList[24].Value;
@@ -575,7 +589,7 @@ namespace BitgetAPI.IndicatorConditionSetup
var Bol24_Up = candleData.movingAverageDataList[24].BolangerValue_Up;
var Bol72_Up = candleData.movingAverageDataList[72].BolangerValue_Up;
#endregion
/*
var 현재봉2_15 = candleData_15.movingAverageDataList[2].Value;
var 전봉2_15 = candleData_15_전봉.movingAverageDataList[2].Value;
var 전전봉2_15 = candleData_15_전전봉.movingAverageDataList[2].Value;
@@ -593,6 +607,11 @@ namespace BitgetAPI.IndicatorConditionSetup
var 전전봉4_15 = candleData_15_전전봉.movingAverageDataList[4].Value;
var 전전전봉4_15 = candleData_15_전전전봉.movingAverageDataList[4].Value;
var 현재봉5_15 = candleData_15.movingAverageDataList[5].Value;
var 전봉5_15 = candleData_15_전봉.movingAverageDataList[5].Value;
var 전전봉5_15 = candleData_15_전전봉.movingAverageDataList[5].Value;
var 전전전봉5_15 = candleData_15_전전전봉.movingAverageDataList[5].Value;
var 현재봉2_60 = candleData_60.movingAverageDataList[2].Value;
var 전봉2_60 = candleData_60_전봉.movingAverageDataList[2].Value;
@@ -610,7 +629,12 @@ namespace BitgetAPI.IndicatorConditionSetup
var 전봉4_60 = candleData_60_전봉.movingAverageDataList[4].Value;
var 전전봉4_60 = candleData_60_전전봉.movingAverageDataList[4].Value;
var 전전전봉4_60 = candleData_60_전전전봉.movingAverageDataList[4].Value;
var 현재봉5_60 = candleData_60.movingAverageDataList[5].Value;
var 전봉5_60 = candleData_60_전봉.movingAverageDataList[5].Value;
var 전전봉5_60 = candleData_60_전전봉.movingAverageDataList[5].Value;
var 전전전봉5_60 = candleData_60_전전전봉.movingAverageDataList[5].Value;
*/
var oneList = new List<double>() {
현재봉24,
@@ -626,18 +650,50 @@ namespace BitgetAPI.IndicatorConditionSetup
};
//var 저고점_1 = 전저고점[market + "1m"];
var 저고점_15 = 전저고점[market + "15m"];
var 저고점_60 = 전저고점[market + "1H"];
//var 저고점_5 = 전저고점[market + "5m"];
var 저고점_30 = 전저고점[market + "30m"];
//var 저고점_60 = 전저고점[market + "1H"];
//var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉2, 전전봉2, 전전전봉2, candleData);
//var returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉5, 전전봉5, 전전전봉5, candleData);
//if (!returnVal) continue;
var returnVal = Calculate전고점(market, "15m", MCandleTimeType.M15, 전봉3_15, 전전봉3_15, 전전전봉3_15, candleData_15);
if (!returnVal) continue;
returnVal = Calculate전고점(market, "1H", MCandleTimeType.H1, 전봉3_60, 전전봉3_60, 전전전봉3_60, candleData_60);
var returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉5, 전전봉5, 전전전봉5, candleData);
if (!returnVal) continue;
//returnVal = Calculate전고점(market, "1H", MCandleTimeType.H1, 전봉5_60, 전전봉5_60, 전전전봉5_60, candleData_60);
//if (!returnVal) continue;
var tempFlag = (저고점_30["Type"] == 0
&& 저고점_30["전저가"] > 저고점_30["전전저가"]
&& 저고점_30["전전전저가"] > 저고점_30["전전저가"]
&& 저고점_30["전전전고가"] > 저고점_30["전전고가"]
&& 저고점_30["tempHighVal"] > 저고점_30["tempLow2Val"]
&& 저고점_30["tempLowVal"] > 저고점_30["tempHighVal"]
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh2Val"]
&& 저고점_30["tempHigh2Val"] > 저고점_30["tempLow3Val"])
||
(저고점_30["Type"] == 1
&& 저고점_30["전고가"] < 저고점_30["전전고가"]
&& 저고점_30["전전전고가"] < 저고점_30["전전고가"]
&& 저고점_30["전전전저가"] < 저고점_30["전전저가"]
&& 저고점_30["tempLowVal"] > 저고점_30["tempHigh2Val"]
&& 저고점_30["tempLowVal"] < 저고점_30["tempHighVal"]
&& 저고점_30["tempLow2Val"] < 저고점_30["tempHigh2Val"]
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh3Val"]);
var tempFlag2 = (저고점_30["Type"] == 1
&& 저고점_30["전저가"] < 저고점_30["전전저가"]
&& 저고점_30["전전전고가"] > 저고점_30["전전고가"]
&& 저고점_30["tempHighVal"] > 저고점_30["tempLow2Val"]
&& 저고점_30["tempLowVal"] > 저고점_30["tempHighVal"]
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh2Val"]
&& 저고점_30["tempHigh2Val"] > 저고점_30["tempLow3Val"])
||
(저고점_30["Type"] == 0
&& 저고점_30["전고가"] > 저고점_30["전전고가"]
&& 저고점_30["전전전저가"] < 저고점_30["전전저가"]
&& 저고점_30["tempLowVal"] > 저고점_30["tempHigh2Val"]
&& 저고점_30["tempLowVal"] < 저고점_30["tempHighVal"]
&& 저고점_30["tempLow2Val"] < 저고점_30["tempHigh2Val"]
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh3Val"]);
if (영호조건식_상향돌파)
{
@@ -649,8 +705,6 @@ namespace BitgetAPI.IndicatorConditionSetup
var description = string.Format("{0} 72,24,4 상승", strInterval);
var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description));
//전 저점 계산
try
{
//사는 시점
@@ -661,21 +715,81 @@ namespace BitgetAPI.IndicatorConditionSetup
// 60분봉
var flag_60 = 저고점_60["Type"] == 0 && 저고점_60["전저가"] < 현재봉3_60 && 저고점_60["전고가"] > 현재봉3_60;
//var flag_60 = 현재봉3_60 > 전봉3_60 && candleData_60.Open < candleData_60.Close;
////저고점_60["Type"] == 1 && 저고점_60["전고가"] > 현재봉3_60 && 현재봉3_60 > 전봉3_60 && 전봉3_60 < 전전봉3_60 && candleData_60.Open < candleData_60.Close;
var flag_15 = 저고점_15["Type"] == 0
&& 저고점_15["전저가"] < 현재봉3_15
&& 저고점_15["전고가"] < 현재봉3_15
&& 저고점_15["전고가"] > 전봉3_15
&& 저고점_15["전저가"] > 저고점_15["전전저가"]
&& 저고점_15["전저가"] < 저고점_15["전고가"]
&& 저고점_15["전고가"] > 저고점_15["전전저가"] && 저고점_15["전고가"]< 저고점_15["전전고가"];
//var flag_15 = 저고점_30["Type"] == 0
// && 저고점_30["전고가"] > 현재봉3_15
// && 저고점_30["전고가"] < 현재봉3_15
// && 저고점_30["전고가"] > 전봉3_15
// && 저고점_30["전저가"] > 저고점_30["전전저가"]
// && 저고점_30["전저가"] < 저고점_30["전고가"]
// && 저고점_30["전고가"] > 저고점_30["전전저가"] && 저고점_30["전고가"]< 저고점_30["전전고가"];
if (flag_60 && flag_15)
//var max = 저고점_30["전고가"];
//if (저고점_30["전고가"] < 저고점_30["전전고가"])
// max = 저고점_30["전전고가"];
//역헤드앤 숄더와 헤드앤 숄더는 둘다 공통
// var flag_15 = 저고점_30["Type"] == 0
// && 저고점_30["전저가"] > 저고점_30["전전저가"]
// && 저고점_30["전전전저가"] > 저고점_30["전전저가"]
// && 저고점_30["전전전고가"] > 저고점_30["전전고가"]
// && 저고점_30["tempHighVal"] > 저고점_30["tempLow2Val"]
// && 저고점_30["tempLowVal"] > 저고점_30["tempHighVal"]
// && 저고점_30["tempLow2Val"] > 저고점_30["tempHigh2Val"]
// && 저고점_30["tempHigh2Val"] > 저고점_30["tempLow3Val"]
// //&& max > 현재봉5
// //&& max < candleData.Close
// //&& max < candleData.Open;
// && 저고점_30["전고가"] > 현재봉5
// && 현재봉5 > 전봉5
// && 저고점_30["전고가"] < candleData.Close;
//// && 저고점_30["전고가"] > candleData.Open;
var minSec = 0.0;
if (tempFlag2)
{
buyFlag = true;
if (저고점_30["Type"] == 1)
{
minSec = 저고점_30["tempLow2Val"];
}
else
{
minSec = 저고점_30["tempHigh2Val"];
}
}
if (tempFlag)
{
if (저고점_30["Type"] == 0)
{
minSec = 저고점_30["tempLow3Val"];
}
else
{
minSec = 저고점_30["tempHigh3Val"];
}
}
if(minSec > 0) {
var minData = new DateTime(1970, 1, 1, 0, 0, 0);
minData = minData.AddSeconds(minSec);
minData = minData.AddMinutes(-90);
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
var list = candleDataList.Where(t => t.Argument > minData).ToList();
list.RemoveAt(list.Count - 1);
var maxData =list.Max(t => t.High);
if(candleData.Close > maxData)
{
buyFlag = true;
}
}
if (buyFlag)
{
// 없으면 생성
@@ -699,7 +813,7 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "MarketName", market },
{ "BuyDate", nowTime },
{ "Price", price },
{ "Flag", 저고점_15["전고가"] > 저고점_15["전전고가"]},
{ "Flag", 저고점_30["전고가"] > 저고점_30["전전고가"]},
{ "MCandleTimeType", (int)interval },
{ "CandleTime", candleData.Argument },
{ "Candle", candleData }
@@ -771,36 +885,51 @@ namespace BitgetAPI.IndicatorConditionSetup
var sellFlag = false;
//예외처리
if (저고점_60["전저가"] > 현재봉3_60)
sellFlag = true;
//if (저고점_60["전저가"] > 현재봉3_60)
// sellFlag = true;
if (저고점_15["전저가"] > 전봉3_15)
sellFlag = true;
//if (저고점_30["전저가"] > 전봉5)
// sellFlag = true;
if (flag)
{
if (저고점_15["전고가"] < 저고점_15["전전고가"])
{
sellFlag = true;
}
//if (저고점_30["전고가"] < 저고점_30["전전고가"])
// sellFlag = true;
if (저고점_15["전전고가"] > 현재봉3_15)
{
sellFlag = true;
}
}
else
{
if (저고점_15["전저가"] > 현재봉3_15)
{
sellFlag = true;
}
//if (저고점_30["전전고가"] > 현재봉5)
// sellFlag = true;
if (저고점_15["전고가"] > 저고점_15["전전고가"])
{
buyItem["Flag"] = true;
}
}
//var 전전Data = 저고점_30["전전고가"] - 저고점_30["전전전고가"];
//var 전Data = 저고점_30["전고가"] - 저고점_30["전전고가"];
//if (전전Data > 전Data) sellFlag = true;
if(현재봉5 < 전봉5) sellFlag = true;
//if (flag)
//{
// if (저고점_5["전고가"] < 저고점_5["전전고가"])
// {
// sellFlag = true;
// }
// if (저고점_5["전전고가"] > 현재봉3)
// {
// sellFlag = true;
// }
//}
//else
//{
// if (저고점_5["전저가"] > 현재봉3)
// {
// sellFlag = true;
// }
// if (저고점_5["전고가"] > 저고점_5["전전고가"])
// {
// buyItem["Flag"] = true;
// }
//}
if (sellFlag)
{
@@ -894,19 +1023,77 @@ namespace BitgetAPI.IndicatorConditionSetup
var buyFlag = false;
var flag_60 = 저고점_60["Type"] == 1 && 저고점_60["전고가"] > 현재봉3_60 && 저고점_60["전저가"] < 현재봉3_60;
//var flag_60 = 현재봉3_60 < 전봉3_60 && candleData_60.Open > candleData_60.Close;
////저고점_60["Type"] == 0 && 저고점_60["전저가"] < 현재봉3_60 && 현재봉3_60 < 전봉3_60 && 전봉3_60> 전전봉3_60 && candleData_60.Open > candleData_60.Close;
var flag_15 = 저고점_15["Type"] == 1
&& 저고점_15["전고가"] > 현재봉3_15
&& 저고점_15["전저가"] > 현재봉3_15
&& 저고점_15["전저가"] < 전봉3_15
&& 저고점_15["전고가"] < 저고점_15["전전고가"]
&& 저고점_15["전고가"] > 저고점_15["전저가"]
&& 저고점_15["전저가"] < 저고점_15["전전고가"] && 저고점_15["전저가"] > 저고점_15["전전저가"];
//var flag_15 = 저고점_30["Type"] == 1
// && 저고점_30["전저가"] < 현재봉3_15
// && 저고점_30["전저가"] > 현재봉3_15
// && 저고점_30["전저가"] < 전봉3_15
// && 저고점_30["전고가"] < 저고점_30["전전고가"]
// && 저고점_30["전고가"] > 저고점_30["전저가"]
// && 저고점_30["전저가"] < 저고점_30["전전고가"] && 저고점_30["전저가"] > 저고점_30["전전저가"];
if (flag_60 && flag_15)
//var flag_15 = 저고점_30["Type"] == 1
// && 저고점_30["전고가"] < 저고점_30["전전고가"]
// && 저고점_30["전전전고가"] < 저고점_30["전전고가"]
// && 저고점_30["전전전저가"] < 저고점_30["전전저가"]
// && 저고점_30["tempLowVal"] > 저고점_30["tempHigh2Val"]
// && 저고점_30["tempLowVal"] < 저고점_30["tempHighVal"]
////&& min < 현재봉5
////&& candleData.Close < min
////&& min < candleData.Open;
//&& 저고점_30["전저가"] < 현재봉5
//&& 현재봉5 < 전봉5
//&& 저고점_30["전저가"] < 저고점_30["전전저가"]
//&& candleData.Close < 저고점_30["전저가"];
// && 저고점_30["전저가"] < candleData.Open;
//if (flag_15)
//{
// buyFlag = true;
//}
var minSec = 0.0;
if (tempFlag2)
{
buyFlag = true;
if (저고점_30["Type"] == 1)
{
minSec = 저고점_30["tempLow2Val"];
}
else
{
minSec = 저고점_30["tempHigh2Val"];
}
}
if (tempFlag)
{
if (저고점_30["Type"] == 0)
{
minSec = 저고점_30["tempLow3Val"];
}
else
{
minSec = 저고점_30["tempHigh3Val"];
}
}
if (minSec > 0)
{
var minDate = new DateTime(1970, 1, 1, 0, 0, 0);
minDate = minDate.AddSeconds(minSec);
minDate = minDate.AddMinutes(-90);
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
var list = candleDataList.Where(t => t.Argument > minDate).ToList();
list.RemoveAt(list.Count - 1);
var minData = list.Min(t => t.High);
if (candleData.Close < minData)
{
buyFlag = true;
}
}
if (buyFlag)
@@ -933,7 +1120,7 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "MarketName", market },
{ "BuyDate", nowTime },
{ "Price", price },
{ "Flag", 저고점_60["전저가"] < 저고점_60["전전저가"]},
{ "Flag", 저고점_30["전저가"] < 저고점_30["전전저가"] },
{ "MCandleTimeType", (int)interval },
{ "CandleTime", candleData.Argument },
{ "Candle", candleData }
@@ -1003,35 +1190,53 @@ namespace BitgetAPI.IndicatorConditionSetup
var sellFlag = false;
if (저고점_60["전고가"] < 현재봉3_60)
//if (저고점_60["전고가"] < 현재봉3_60)
// sellFlag = true;
//if (저고점_30["전고가"] < 전봉5)
// sellFlag = true;
//if (저고점_30["전저가"] > 저고점_30["전전저가"])
// sellFlag = true;
//if (저고점_30["전전저가"] < 현재봉5)
// sellFlag = true;
//var 전전Data = 저고점_30["전전전저가"] - 저고점_30["전전저가"];
//var 전Data = 저고점_30["전전저가"] - 저고점_30["전저가"];
//if (전전Data > 전Data) sellFlag = true;
if(현재봉5 > 전봉5)
sellFlag = true;
if (저고점_15["전고가"] < 전봉3_15)
sellFlag = true;
if (flag)
{
if (저고점_15["전저가"] > 저고점_15["전전저가"])
{
sellFlag = true;
}
if (저고점_15["전전저가"] < 현재봉3_15)
{
sellFlag = true;
}
}
else
{
if (저고점_15["전고가"] < 현재봉3_15)
{
sellFlag = true;
}
if (저고점_15["전저가"] < 저고점_15["전전저가"])
{
buyItem["Flag"] = true;
}
}
//if (저고점_5["tempLowVal"] > ((DateTimeOffset)buyItem["CandleTime"]).ToUnixTimeSeconds())
//{
// if (flag)
// {
// if (저고점_5["전저가"] > 저고점_5["전전저가"])
// {
// sellFlag = true;
// }
// if (저고점_5["전전저가"] < 현재봉3)
// {
// sellFlag = true;
// }
// }
// else
// {
// if (저고점_5["전고가"] < 현재봉3)
// {
// sellFlag = true;
// }
// if (저고점_5["전저가"] < 저고점_5["전전저가"])
// {
// buyItem["Flag"] = true;
// }
// }
//}
if (sellFlag)
{
@@ -1128,6 +1333,8 @@ namespace BitgetAPI.IndicatorConditionSetup
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type)
{
저고점["tempLow4Val"] = 저고점["tempLow3Val"];
저고점["tempLow3Val"] = 저고점["tempLow2Val"];
저고점["tempLow2Val"] = 저고점["tempLowVal"];
저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
저고점["switchLowVal"] = 저고점["전전전전저가"];
@@ -1149,6 +1356,8 @@ namespace BitgetAPI.IndicatorConditionSetup
저고점["Type"] = 0;
저고점["전전전전고가"] = 저고점["switchLowVal"];
저고점["tempHighVal"] = 저고점["tempHigh2Val"];
저고점["tempHigh2Val"] = 저고점["tempHigh3Val"];
저고점["tempHigh3Val"] = 저고점["tempHigh4Val"];
if (저고점["전저가"] > 전전봉3)
저고점["전저가"] = 전전봉3;
@@ -1158,7 +1367,9 @@ namespace BitgetAPI.IndicatorConditionSetup
if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type)
{
{
저고점["tempHigh4Val"] = 저고점["tempHigh3Val"];
저고점["tempHigh3Val"] = 저고점["tempHigh2Val"];
저고점["tempHigh2Val"] = 저고점["tempHighVal"];
저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
저고점["switchHighVal"] = 저고점["전전전전고가"];
@@ -1179,6 +1390,8 @@ namespace BitgetAPI.IndicatorConditionSetup
저고점["전전전전저가"] = 저고점["switchHighVal"];
저고점["Type"] = 1;
저고점["tempLowVal"] = 저고점["tempLow2Val"];
저고점["tempLow2Val"] = 저고점["tempLow3Val"];
저고점["tempLow3Val"] = 저고점["tempLow4Val"];
if (저고점["전고가"] < 전전봉3)
저고점["전고가"] = 전전봉3;