수정
This commit is contained in:
@@ -76,7 +76,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
// 스레드 시작/종료 플래그
|
||||
public bool Is_th_SignalInfo;
|
||||
public Dictionary<string, Dictionary<string, double>> 전저고점 = new Dictionary<string, Dictionary<string, double>>();
|
||||
|
||||
|
||||
public List<object> checkedMarkets;
|
||||
public List<object> intervalList;
|
||||
|
||||
@@ -127,7 +127,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
public Dictionary<string, bool> BuyShortStep = new Dictionary<string, bool>();
|
||||
public Dictionary<string, bool> BuyLongStep = new Dictionary<string, bool>();
|
||||
|
||||
|
||||
|
||||
public int 전가Flag = 1;
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
//var sellData = FutureOrder("XRPUSDT", FutureMarginMode.isolated, 10, 0, FutureSide.SellShort, OrderType.market, 10, orderDic["orderId"]);
|
||||
|
||||
|
||||
var firstFlag = true;
|
||||
|
||||
// 추후 공통화 및 소스정리 필요
|
||||
while (true)
|
||||
{
|
||||
@@ -272,25 +272,28 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
candleDatas_Temp_List.Add(candleData_Main);
|
||||
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_Temp_List, candleData_Main);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_Temp_List, candleData_Main);
|
||||
if(i > 210)
|
||||
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 - 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 returnVal = Calculate전고점(market, strInterval, interval, 전봉3_Temp, 전전봉3_Temp, 전전전봉3_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!BuyShortStep.ContainsKey(market + strInterval)) {
|
||||
if (!BuyShortStep.ContainsKey(market + strInterval))
|
||||
{
|
||||
BuyShortStep[market + strInterval] = false;
|
||||
BuyLongStep[market + strInterval] = false;
|
||||
}
|
||||
|
||||
|
||||
#region Main 처리
|
||||
if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "30m")))
|
||||
continue;
|
||||
|
||||
#region 1분봉 처리
|
||||
// 시간별로 정렬하기 (임시 리스트)
|
||||
var candleDatas = findedMarket.candleDataList[MCandleTimeType.M1];
|
||||
var candleDatas_정렬 = candleDatas.OrderBy(i => i.Argument).ToList();
|
||||
@@ -509,7 +512,6 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var 전전봉80 = candleData_전전봉.movingAverageDataList[80].Value;
|
||||
//var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value;
|
||||
|
||||
|
||||
var 전봉3 = candleData_전봉.movingAverageDataList[3].Value;
|
||||
var 전봉4 = candleData_전봉.movingAverageDataList[4].Value;
|
||||
var 전봉8 = candleData_전봉.movingAverageDataList[8].Value;
|
||||
@@ -579,13 +581,12 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_5 = candleData_5_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var 현재봉3_30 = candleData_5.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 전전전봉3_30 = candleData_30_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "30m")))
|
||||
continue;
|
||||
|
||||
|
||||
var 저고점_1 = 전저고점[market + "1m"];
|
||||
var 저고점_5 = 전저고점[market + "5m"];
|
||||
@@ -609,28 +610,29 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description));
|
||||
|
||||
//전 저점 계산
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
//사는 시점
|
||||
if (!UpBuyList.ContainsKey(market + interval))
|
||||
if (!UpBuyList.ContainsKey(market))
|
||||
{
|
||||
if ((int)interval != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var buyFlag = false;
|
||||
|
||||
// 30분봉
|
||||
var flag_30 = (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 > 저고점_30["전저가"])
|
||||
|| (저고점_30["전전저가"] > 저고점_30["전저가"] && candleData_30.High > 저고점_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["전고가"])
|
||||
|| (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] > 저고점_30["전저가"] && 현재봉3_30 > 저고점_30["전고가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && candleData_5.High > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전저가"] > 저고점_5["전저가"] && candleData_5.High > 저고점_5["전고가"]);
|
||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] > 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"]);
|
||||
|
||||
var flag_1 = 현재봉3 > 현재봉24 && 현재봉3 > 현재봉48 && 현재봉3 > 현재봉72 && 현재봉3 > 현재봉120;
|
||||
|
||||
if (flag_30 && flag_5 && flag_1) {
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
buyFlag = true;
|
||||
}
|
||||
|
||||
@@ -657,13 +659,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{
|
||||
{ "MarketName", market },
|
||||
{ "BuyDate", nowTime },
|
||||
{ "Price", price },
|
||||
{ "Price", price },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "Candle", candleData }
|
||||
};
|
||||
|
||||
UpBuyList.Add(market + interval, buyDic);
|
||||
UpBuyList.Add(market, buyDic);
|
||||
|
||||
var dic = new Dictionary<int, bool>
|
||||
{
|
||||
@@ -673,7 +675,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
[4] = false,
|
||||
[5] = false
|
||||
};
|
||||
SellLongStep.Add(market + interval, dic);
|
||||
SellLongStep.Add(market, dic);
|
||||
if (LongCount < 5)
|
||||
{
|
||||
double size = YHKIM_OrderAmount / price * YHKIM_Leverage;
|
||||
@@ -698,16 +700,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//파는 시점
|
||||
else
|
||||
{
|
||||
if ((int)interval != 30)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var buyItem = UpBuyList[market + interval];
|
||||
var flag = (bool)buyItem["Flag"];
|
||||
var buyItem = UpBuyList[market];
|
||||
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval);
|
||||
@@ -723,7 +722,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
|
||||
var sellFlag = false;
|
||||
if (저고점_30["전저가"] > 현재봉3)
|
||||
if (저고점_30["전저가"] > 전봉3 || 저고점_30["전고가"] < 저고점_30["전전고가"])
|
||||
sellFlag = true;
|
||||
|
||||
|
||||
@@ -731,7 +730,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{
|
||||
double.TryParse(buyItem["Price"].ToString(), out var buyPrice);
|
||||
var resultRate = ((price - buyPrice) / buyPrice) * 100;
|
||||
BuyLongStep[market + interval] = false;
|
||||
BuyLongStep[market] = false;
|
||||
var result = new Dictionary<string, object>()
|
||||
{
|
||||
{ "MarketName", market },
|
||||
@@ -747,8 +746,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
};
|
||||
|
||||
UpResultList.Add(result);
|
||||
UpBuyList.Remove(market + interval);
|
||||
SellLongStep.Remove(market + interval);
|
||||
UpBuyList.Remove(market);
|
||||
SellLongStep.Remove(market);
|
||||
|
||||
var orderDic = BuyLongList.FirstOrDefault(t => t["MarketName"].ToString() == market);
|
||||
|
||||
@@ -792,6 +791,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -813,75 +813,77 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
try
|
||||
{
|
||||
//사는 시점
|
||||
if (!DownBuyList.ContainsKey(market + interval))
|
||||
if (!DownBuyList.ContainsKey(market))
|
||||
{
|
||||
if ((int)interval != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var buyFlag = false;
|
||||
|
||||
var buyFlag = false;
|
||||
//var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"])
|
||||
// || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전고가"])
|
||||
|| (저고점_30["전전고가"] < 저고점_30["전고가"] && candleData_30.Low < 저고점_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["전저가"])
|
||||
|| (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && candleData_5.Low < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전고가"] < 저고점_5["전고가"] && candleData_5.Low < 저고점_5["전저가"]);
|
||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] < 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"]);
|
||||
|
||||
var flag_1 = 현재봉3 < 현재봉24 && 현재봉3 < 현재봉48 && 현재봉3 < 현재봉72 && 현재봉3 < 현재봉120;
|
||||
var flag_1 = 현재봉3 < 현재봉24 && 현재봉3 < 현재봉48 && 현재봉3 < 현재봉72 && 현재봉3 < 현재봉120;
|
||||
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
buyFlag = true;
|
||||
}
|
||||
|
||||
if (buyFlag)
|
||||
{
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
SignalInfoData signalInfoData = new SignalInfoData();
|
||||
signalInfoData.SignalStart = nowTime;
|
||||
signalInfoData.MarketName = market;
|
||||
signalInfoData.Description = description;
|
||||
signalInfoData.Rate = rate;
|
||||
signalInfoData.Price = price;
|
||||
signalInfoData.IndicatorPrice = indicatorPrice;
|
||||
signalInfoData.IndicatorRate = indicatorRate;
|
||||
signalInfoData.MCandleTimeType = interval;
|
||||
|
||||
signals_SD.Add(signalInfoData);
|
||||
buyFlag = true;
|
||||
}
|
||||
var buyDic = new Dictionary<string, object>
|
||||
|
||||
if (buyFlag)
|
||||
{
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
{
|
||||
SignalInfoData signalInfoData = new SignalInfoData();
|
||||
signalInfoData.SignalStart = nowTime;
|
||||
signalInfoData.MarketName = market;
|
||||
signalInfoData.Description = description;
|
||||
signalInfoData.Rate = rate;
|
||||
signalInfoData.Price = price;
|
||||
signalInfoData.IndicatorPrice = indicatorPrice;
|
||||
signalInfoData.IndicatorRate = indicatorRate;
|
||||
signalInfoData.MCandleTimeType = interval;
|
||||
|
||||
signals_SD.Add(signalInfoData);
|
||||
}
|
||||
var buyDic = new Dictionary<string, object>
|
||||
{
|
||||
{ "MarketName", market },
|
||||
{ "BuyDate", nowTime },
|
||||
{ "Price", price },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "Candle", candleData }
|
||||
};
|
||||
|
||||
DownBuyList.Add(market + interval, buyDic);
|
||||
var dic = new Dictionary<int, bool>
|
||||
{
|
||||
[1] = true,
|
||||
[2] = false,
|
||||
[3] = false,
|
||||
[4] = false,
|
||||
[5] = false
|
||||
};
|
||||
SellShortStep.Add(market + interval, dic);
|
||||
|
||||
if (ShortCount < 5)
|
||||
{
|
||||
double size = YHKIM_OrderAmount / price * YHKIM_Leverage;
|
||||
var orderData = FutureOrder(market, FutureMarginMode.isolated, size, price, FutureSide.BuyShort, OrderType.limit, YHKIM_Leverage);
|
||||
if (orderData != null)
|
||||
DownBuyList.Add(market, buyDic);
|
||||
var dic = new Dictionary<int, bool>
|
||||
{
|
||||
var orderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(orderData["data"]));
|
||||
[1] = true,
|
||||
[2] = false,
|
||||
[3] = false,
|
||||
[4] = false,
|
||||
[5] = false
|
||||
};
|
||||
SellShortStep.Add(market, dic);
|
||||
|
||||
var orderDataDic = new Dictionary<string, object>
|
||||
if (ShortCount < 5)
|
||||
{
|
||||
double size = YHKIM_OrderAmount / price * YHKIM_Leverage;
|
||||
var orderData = FutureOrder(market, FutureMarginMode.isolated, size, price, FutureSide.BuyShort, OrderType.limit, YHKIM_Leverage);
|
||||
if (orderData != null)
|
||||
{
|
||||
var orderDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(orderData["data"]));
|
||||
|
||||
var orderDataDic = new Dictionary<string, object>
|
||||
{
|
||||
{ "MarketName", market },
|
||||
{ "BuyDate", nowTime },
|
||||
@@ -891,24 +893,19 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{ "Size", size },
|
||||
{ "orderId", orderDic["orderId"] }
|
||||
};
|
||||
BuyShortList.Add(orderDataDic);
|
||||
ShortCount++;
|
||||
BuyShortList.Add(orderDataDic);
|
||||
ShortCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//파는 시점
|
||||
else
|
||||
{
|
||||
if ((int)interval != 30)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var sellFlag = false;
|
||||
var buyItem = DownBuyList[market + interval];
|
||||
var flag = (bool)buyItem["Flag"];
|
||||
|
||||
{
|
||||
var buyItem = DownBuyList[market];
|
||||
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval);
|
||||
@@ -922,13 +919,15 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
var sellFlag = false;
|
||||
|
||||
if (저고점_30["전고가"] < 현재봉3)
|
||||
if (저고점_30["전고가"] < 전봉3 || 저고점_30["전저가"] > 저고점_30["전전저가"])
|
||||
sellFlag = true;
|
||||
|
||||
|
||||
if (sellFlag)
|
||||
{
|
||||
BuyShortStep[market + interval] = false;
|
||||
BuyShortStep[market] = false;
|
||||
double.TryParse(buyItem["Price"].ToString(), out var buyPrice);
|
||||
var resultRate = ((price - buyPrice) / buyPrice) * 100;
|
||||
|
||||
@@ -947,8 +946,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
};
|
||||
|
||||
DownResultList.Add(result);
|
||||
DownBuyList.Remove(market + interval);
|
||||
SellShortStep.Remove(market + interval);
|
||||
DownBuyList.Remove(market);
|
||||
SellShortStep.Remove(market);
|
||||
var orderDic = BuyShortList.FirstOrDefault(t => t["MarketName"].ToString() == market);
|
||||
|
||||
if (orderDic != null)
|
||||
@@ -993,6 +992,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -1017,11 +1017,11 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
//전저가
|
||||
if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||
저고점["tempLowVal"] != candleData.Argument.Hour * 60 + candleData.Argument.Minute &&
|
||||
(candleData.Argument.Hour * 60 + candleData.Argument.Minute) - 저고점["tempHighVal"] > 2 * (int)type)
|
||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type)
|
||||
{
|
||||
저고점["tempLow2Val"] = 저고점["tempLowVal"];
|
||||
저고점["tempLowVal"] = candleData.Argument.Hour * 60 + candleData.Argument.Minute;
|
||||
저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||
저고점["switchLowVal"] = 저고점["전전전전저가"];
|
||||
저고점["전전전전저가"] = 저고점["전전저가"];
|
||||
저고점["전전전저가"] = 저고점["전전저가"];
|
||||
@@ -1030,8 +1030,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
}
|
||||
else if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 &&
|
||||
저고점["tempLowVal"] != candleData.Argument.Hour * 60 + candleData.Argument.Minute &&
|
||||
(candleData.Argument.Hour * 60 + candleData.Argument.Minute) - 저고점["tempHighVal"] <= 2 * (int)type)
|
||||
저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type)
|
||||
{
|
||||
//이전으로 초기화 작업(High)
|
||||
저고점["전고가"] = 저고점["전전고가"];
|
||||
@@ -1046,11 +1046,11 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
//전고가
|
||||
if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||
저고점["tempHighVal"] != candleData.Argument.Hour * 60 + candleData.Argument.Minute &&
|
||||
(candleData.Argument.Hour * 60 + candleData.Argument.Minute) - 저고점["tempLowVal"] > 2 * (int)type)
|
||||
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type)
|
||||
{
|
||||
저고점["tempHigh2Val"] = 저고점["tempHighVal"];
|
||||
저고점["tempHighVal"] = candleData.Argument.Hour * 60 + candleData.Argument.Minute;
|
||||
저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds();
|
||||
저고점["switchHighVal"] = 저고점["전전전전고가"];
|
||||
저고점["전전전전고가"] = 저고점["전전전고가"];
|
||||
저고점["전전전고가"] = 저고점["전전고가"];
|
||||
@@ -1058,8 +1058,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
저고점["전고가"] = 전전봉3;
|
||||
}
|
||||
else if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 &&
|
||||
저고점["tempHighVal"] != candleData.Argument.Hour * 60 + candleData.Argument.Minute &&
|
||||
(candleData.Argument.Hour * 60 + candleData.Argument.Minute) - 저고점["tempLowVal"] < 2 * (int)type)
|
||||
저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() &&
|
||||
((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type)
|
||||
{
|
||||
//이전으로 초기화 작업(Low)
|
||||
저고점["전저가"] = 저고점["전전저가"];
|
||||
@@ -1070,7 +1070,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
if (저고점["전고가"] < 전전봉3)
|
||||
저고점["전고가"] = 전전봉3;
|
||||
}
|
||||
}
|
||||
|
||||
if (저고점["전전전저가"] == 0 || 저고점["전전전고가"] == 0)
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user