임시수정
This commit is contained in:
@@ -294,7 +294,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
BuyLongStep[market] = false;
|
BuyLongStep[market] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(전저고점.ContainsKey(market + "30m") && 전저고점.ContainsKey(market + "4H"))) continue;
|
if (!(전저고점.ContainsKey(market + "30m"))) continue;
|
||||||
|
|
||||||
//if (!(전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "1H")))
|
//if (!(전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "1H")))
|
||||||
// continue;
|
// continue;
|
||||||
@@ -387,7 +387,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
#region 60분봉 처리
|
#region 60분봉 처리
|
||||||
// 시간별로 정렬하기 (임시 리스트)
|
// 시간별로 정렬하기 (임시 리스트)
|
||||||
|
/*
|
||||||
var candleDatas_240 = findedMarket.candleDataList[MCandleTimeType.H4];
|
var candleDatas_240 = findedMarket.candleDataList[MCandleTimeType.H4];
|
||||||
var candleDatas_240_정렬 = candleDatas_240.OrderBy(i => i.Argument).ToList();
|
var candleDatas_240_정렬 = candleDatas_240.OrderBy(i => i.Argument).ToList();
|
||||||
|
|
||||||
@@ -426,7 +426,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
if (candleData_240_전전전전봉 == null) continue;
|
if (candleData_240_전전전전봉 == null) continue;
|
||||||
ichimokuConditionSetup.calIchimokuData(candleDatas_240_정렬, candleData_240_전전전전봉);
|
ichimokuConditionSetup.calIchimokuData(candleDatas_240_정렬, candleData_240_전전전전봉);
|
||||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_240_정렬, candleData_240_전전전전봉);
|
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_240_정렬, candleData_240_전전전전봉);
|
||||||
|
*/
|
||||||
#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.상한선
|
||||||
@@ -613,7 +613,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var 전전봉5_1 = candleData_1_전전봉.movingAverageDataList[5].Value;
|
var 전전봉5_1 = candleData_1_전전봉.movingAverageDataList[5].Value;
|
||||||
var 전전전봉5_1 = candleData_1_전전전봉.movingAverageDataList[5].Value;
|
var 전전전봉5_1 = candleData_1_전전전봉.movingAverageDataList[5].Value;
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
var 현재봉2_240 = candleData_240.movingAverageDataList[2].Value;
|
var 현재봉2_240 = candleData_240.movingAverageDataList[2].Value;
|
||||||
var 전봉2_240 = candleData_240_전봉.movingAverageDataList[2].Value;
|
var 전봉2_240 = candleData_240_전봉.movingAverageDataList[2].Value;
|
||||||
var 전전봉2_240 = candleData_240_전전봉.movingAverageDataList[2].Value;
|
var 전전봉2_240 = candleData_240_전전봉.movingAverageDataList[2].Value;
|
||||||
@@ -638,7 +638,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var 현재봉24_240 = candleData_240.movingAverageDataList[24].Value;
|
var 현재봉24_240 = candleData_240.movingAverageDataList[24].Value;
|
||||||
var 전봉24_240 = candleData_240_전봉.movingAverageDataList[24].Value;
|
var 전봉24_240 = candleData_240_전봉.movingAverageDataList[24].Value;
|
||||||
|
*/
|
||||||
var oneList = new List<double>() {
|
var oneList = new List<double>() {
|
||||||
현재봉24,
|
현재봉24,
|
||||||
현재봉48,
|
현재봉48,
|
||||||
@@ -668,11 +668,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
||||||
&& 저고점_30["전고가"] < 저고점_30["전전고가"])
|
&& 저고점_30["전고가"] < 저고점_30["전전고가"])
|
||||||
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
||||||
&& 저고점_30["전고가"] > 저고점_30["전전고가"]))
|
&& 저고점_30["전고가"] > 저고점_30["전전고가"])))
|
||||||
&& 저고점_30["tempHighVal"] > 저고점_30["tempLowVal"]
|
|
||||||
&& 저고점_30["tempLowVal"] > 저고점_30["tempHigh2Val"]
|
|
||||||
&& 저고점_30["tempHigh2Val"] > 저고점_30["tempLow2Val"]
|
|
||||||
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh3Val"])
|
|
||||||
&& candleData.IchimokData.상한선 > candleData.Close
|
&& candleData.IchimokData.상한선 > candleData.Close
|
||||||
//&& candleData_240.Close < 현재봉24_240
|
//&& candleData_240.Close < 현재봉24_240
|
||||||
//&& 현재봉24_240 < 전봉24_240
|
//&& 현재봉24_240 < 전봉24_240
|
||||||
@@ -685,32 +681,36 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
&& 전봉3 < 저고점_30["전고가"])
|
&& 전봉3 < 저고점_30["전고가"])
|
||||||
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
||||||
&& 전봉3 > 저고점_30["전고가"]))
|
&& 전봉3 > 저고점_30["전고가"]))
|
||||||
&& 전전봉3 < 전봉3 && 전봉3 > 현재봉3
|
&& 전전봉3 < 전봉3 && 전봉3 > 현재봉3)
|
||||||
&& 저고점_30["tempHighVal"] < 저고점_30["tempLowVal"]
|
|
||||||
&& 저고점_30["tempLowVal"] < 저고점_30["tempHigh2Val"]
|
|
||||||
&& 저고점_30["tempHigh2Val"] < 저고점_30["tempLow2Val"]
|
|
||||||
&& 저고점_30["tempLow2Val"] < 저고점_30["tempHigh3Val"])
|
|
||||||
&& candleData.IchimokData.상한선 > candleData.Close
|
&& candleData.IchimokData.상한선 > candleData.Close
|
||||||
//&& candleData_240.Close < 현재봉24_240
|
//&& candleData_240.Close < 현재봉24_240
|
||||||
//&& 현재봉24_240 < 전봉24_240
|
//&& 현재봉24_240 < 전봉24_240
|
||||||
&& 현재봉24 > 현재봉72;
|
&& 현재봉24 > 현재봉72;
|
||||||
|
|
||||||
|
var tempFlag1Long = (저고점_30["Type"] == 0
|
||||||
|
&& ((저고점_30["전저가"] > 저고점_30["전전저가"]
|
||||||
|
&& 저고점_30["전전고가"] < 저고점_30["전고가"])
|
||||||
|
|| (저고점_30["전저가"] > 저고점_30["전전저가"]
|
||||||
|
&& 저고점_30["전고가"] < 저고점_30["전전고가"])
|
||||||
|
|| (저고점_30["전저가"] > 저고점_30["전전저가"]
|
||||||
|
&& 저고점_30["전고가"] < 저고점_30["전전고가"])))
|
||||||
|
&& candleData.IchimokData.하한선 < candleData.Close
|
||||||
|
//&& candleData_240.Close > 현재봉24_240
|
||||||
|
//&& 현재봉24_240 > 전봉24_240;
|
||||||
|
&& 현재봉24 < 현재봉72;
|
||||||
|
|
||||||
var tempFlag2Long = (저고점_30["Type"] == 0
|
var tempFlag2Long = (저고점_30["Type"] == 1
|
||||||
&& ((저고점_30["전저가"] > 저고점_30["전전저가"]
|
&& ((전봉3 > 저고점_30["전저가"]
|
||||||
&& 저고점_30["전전고가"] < 저고점_30["전고가"])
|
&& 저고점_30["전전고가"] < 저고점_30["전고가"])
|
||||||
|| (저고점_30["전저가"] > 저고점_30["전전저가"]
|
|| (전봉3 > 저고점_30["전저가"]
|
||||||
&& 저고점_30["전고가"] < 저고점_30["전전고가"])
|
&& 저고점_30["전고가"] < 저고점_30["전전고가"])
|
||||||
|| (저고점_30["전저가"] < 저고점_30["전전저가"]
|
|| (전봉3 > 저고점_30["전저가"]
|
||||||
&& 저고점_30["전고가"] > 저고점_30["전전고가"]))
|
&& 저고점_30["전고가"] < 저고점_30["전전고가"]))
|
||||||
&& 저고점_30["tempLowVal"] > 저고점_30["tempHighVal"]
|
&& 전전봉3 > 전봉3 && 전봉3 < 현재봉3)
|
||||||
&& 저고점_30["tempHighVal"] > 저고점_30["tempLow2Val"]
|
&& candleData.IchimokData.하한선 < candleData.Close
|
||||||
&& 저고점_30["tempLow2Val"] > 저고점_30["tempHigh2Val"]
|
//&& candleData_240.Close > 현재봉24_240
|
||||||
&& 저고점_30["tempHigh2Val"] > 저고점_30["tempLow3Val"])
|
//&& 현재봉24_240 > 전봉24_240;
|
||||||
//&& candleData.IchimokData.상한선 > candleData.Close
|
&& 현재봉24 < 현재봉72;
|
||||||
&& candleData_240.Close > 현재봉24_240
|
|
||||||
&& 현재봉24_240 > 전봉24_240;
|
|
||||||
//&& 현재봉24 < 현재봉72;
|
|
||||||
|
|
||||||
//var tempFlagShort = (저고점_30["Type"] == 1
|
//var tempFlagShort = (저고점_30["Type"] == 1
|
||||||
// && 저고점_30["전고가"] < 저고점_30["전전고가"]
|
// && 저고점_30["전고가"] < 저고점_30["전전고가"]
|
||||||
@@ -738,7 +738,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
if (영호조건식_상향돌파)
|
if (영호조건식_상향돌파)
|
||||||
{
|
{
|
||||||
if (!tempFlag2Long && !BuyLongStep[market])
|
if (!tempFlag1Long && !tempFlag2Long && !BuyLongStep[market])
|
||||||
{
|
{
|
||||||
BuyLongStep[market] = true;
|
BuyLongStep[market] = true;
|
||||||
}
|
}
|
||||||
@@ -760,7 +760,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
if (!UpBuyList.ContainsKey(market))
|
if (!UpBuyList.ContainsKey(market))
|
||||||
{
|
{
|
||||||
var buyFlag = false;
|
var buyFlag = false;
|
||||||
if (tempFlag2Long)
|
if (tempFlag2Long || tempFlag1Long)
|
||||||
{
|
{
|
||||||
// 60분봉
|
// 60분봉
|
||||||
|
|
||||||
@@ -797,20 +797,33 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
// && 저고점_30["전고가"] < candleData.Close;
|
// && 저고점_30["전고가"] < candleData.Close;
|
||||||
//// && 저고점_30["전고가"] > candleData.Open;
|
//// && 저고점_30["전고가"] > candleData.Open;
|
||||||
|
|
||||||
var finalSellPrice = 0.0;
|
|
||||||
var minSec = 저고점_30["tempHighVal"];
|
var minSec = 저고점_30["tempHighVal"];
|
||||||
|
|
||||||
if (minSec > 0)
|
if (minSec > 0)
|
||||||
{
|
{
|
||||||
var minData = new DateTime(1970, 1, 1, 0, 0, 0);
|
var minDate = new DateTime(1970, 1, 1, 0, 0, 0);
|
||||||
minData = minData.AddSeconds(minSec);
|
minDate = minDate.AddSeconds(minSec);
|
||||||
minData = minData.AddMinutes(-3 * (int)interval);
|
minDate = minDate.AddHours(8);
|
||||||
|
minDate = minDate.AddMinutes(-3 * (int)interval);
|
||||||
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
|
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
|
||||||
|
|
||||||
var list = candleDataList.Where(t => t.Argument > minData).ToList();
|
var list = candleDataList.Where(t => t.Argument > minDate).ToList();
|
||||||
list.RemoveAt(list.Count - 1);
|
|
||||||
finalSellPrice = list.Min(t => t.Close);
|
var closeDataList = new List<double>();
|
||||||
var maxData = list.Max(t => t.Close);
|
|
||||||
|
if (list.Count > 3)
|
||||||
|
{
|
||||||
|
closeDataList.Add(list[0].Close);
|
||||||
|
closeDataList.Add(list[1].Close);
|
||||||
|
closeDataList.Add(list[2].Close);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
closeDataList = list.Select(t => t.Close).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
var maxData = closeDataList.Max();
|
||||||
|
|
||||||
if (candleData.Close > maxData && 현재봉3 > 전봉3)
|
if (candleData.Close > maxData && 현재봉3 > 전봉3)
|
||||||
{
|
{
|
||||||
@@ -840,8 +853,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{
|
{
|
||||||
{ "MarketName", market },
|
{ "MarketName", market },
|
||||||
{ "BuyDate", nowTime },
|
{ "BuyDate", nowTime },
|
||||||
{ "Price", price },
|
{ "Price", price },
|
||||||
{ "finalSellPrice", finalSellPrice },
|
|
||||||
{ "Flag", 저고점_30["전고가"] > 저고점_30["전전고가"]},
|
{ "Flag", 저고점_30["전고가"] > 저고점_30["전전고가"]},
|
||||||
{ "MCandleTimeType", (int)interval },
|
{ "MCandleTimeType", (int)interval },
|
||||||
{ "CandleTime", candleData.Argument },
|
{ "CandleTime", candleData.Argument },
|
||||||
@@ -891,7 +903,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var buyItem = UpBuyList[market];
|
var buyItem = UpBuyList[market];
|
||||||
var flag = (bool)buyItem["Flag"];
|
var flag = (bool)buyItem["Flag"];
|
||||||
var finalSellPrice = (double)buyItem["finalSellPrice"];
|
|
||||||
if (interval < MCandleTimeType.H1)
|
if (interval < MCandleTimeType.H1)
|
||||||
{
|
{
|
||||||
var buyTime = ((DateTime)buyItem["CandleTime"]).AddMinutes((int)interval);
|
var buyTime = ((DateTime)buyItem["CandleTime"]).AddMinutes((int)interval);
|
||||||
@@ -916,21 +928,6 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var sellFlag = false;
|
var sellFlag = false;
|
||||||
|
|
||||||
if (finalSellPrice > candleData.Close)
|
|
||||||
sellFlag = true;
|
|
||||||
|
|
||||||
if (buyTimeUnix < 저고점_30["tempHighVal"])
|
|
||||||
{
|
|
||||||
if (저고점_30["전고가"] < 저고점_30["전전고가"])
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
if (저고점_30["전전고가"] > candleData.Close)
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (candleData.Close < candleData_전봉.Low ||
|
if (candleData.Close < candleData_전봉.Low ||
|
||||||
candleData.Close < candleData_전전봉.Low ||
|
candleData.Close < candleData_전전봉.Low ||
|
||||||
candleData.Close < candleData_전전전봉.Low)
|
candleData.Close < candleData_전전전봉.Low)
|
||||||
@@ -1023,7 +1020,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
var description = string.Format("{0} 72,24,4 하락", strInterval);
|
var description = string.Format("{0} 72,24,4 하락", strInterval);
|
||||||
var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description));
|
var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description));
|
||||||
|
|
||||||
if (!tempFlag2Short && !BuyShortStep[market])
|
if (!tempFlag1Short && !tempFlag2Short && !BuyShortStep[market])
|
||||||
{
|
{
|
||||||
BuyShortStep[market] = true;
|
BuyShortStep[market] = true;
|
||||||
}
|
}
|
||||||
@@ -1068,20 +1065,33 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
//{
|
//{
|
||||||
// buyFlag = true;
|
// buyFlag = true;
|
||||||
//}
|
//}
|
||||||
var finalSellPrice = 0.0;
|
|
||||||
var minSec = 저고점_30["tempLowVal"];
|
var minSec = 저고점_30["tempLowVal"];
|
||||||
|
|
||||||
if (minSec > 0)
|
if (minSec > 0)
|
||||||
{
|
{
|
||||||
var minDate = new DateTime(1970, 1, 1, 0, 0, 0);
|
var minDate = new DateTime(1970, 1, 1, 0, 0, 0);
|
||||||
minDate = minDate.AddSeconds(minSec);
|
minDate = minDate.AddSeconds(minSec);
|
||||||
|
minDate = minDate.AddHours(8);
|
||||||
minDate = minDate.AddMinutes(-3 * (int)interval);
|
minDate = minDate.AddMinutes(-3 * (int)interval);
|
||||||
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
|
var candleDataList = candleDatas.OrderBy(i => i.Argument).ToList();
|
||||||
|
|
||||||
var list = candleDataList.Where(t => t.Argument > minDate).ToList();
|
var list = candleDataList.Where(t => t.Argument > minDate).ToList();
|
||||||
list.RemoveAt(list.Count - 1);
|
var closeDataList = new List<double>();
|
||||||
var minData = list.Min(t => t.Close);
|
|
||||||
finalSellPrice = list.Max(t => t.Close);
|
if (list.Count > 3)
|
||||||
|
{
|
||||||
|
closeDataList.Add(list[0].Close);
|
||||||
|
closeDataList.Add(list[1].Close);
|
||||||
|
closeDataList.Add(list[2].Close);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
closeDataList = list.Select(t => t.Close).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
var minData = closeDataList.Min();
|
||||||
|
|
||||||
if (candleData.Close < minData && 현재봉3 < 전봉3)
|
if (candleData.Close < minData && 현재봉3 < 전봉3)
|
||||||
{
|
{
|
||||||
buyFlag = true;
|
buyFlag = true;
|
||||||
@@ -1112,7 +1122,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{ "MarketName", market },
|
{ "MarketName", market },
|
||||||
{ "BuyDate", nowTime },
|
{ "BuyDate", nowTime },
|
||||||
{ "Price", price },
|
{ "Price", price },
|
||||||
{ "finalSellPrice", finalSellPrice },
|
|
||||||
{ "Flag", 저고점_30["전저가"] < 저고점_30["전전저가"] },
|
{ "Flag", 저고점_30["전저가"] < 저고점_30["전전저가"] },
|
||||||
{ "MCandleTimeType", (int)interval },
|
{ "MCandleTimeType", (int)interval },
|
||||||
{ "CandleTime", candleData.Argument },
|
{ "CandleTime", candleData.Argument },
|
||||||
@@ -1162,7 +1172,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
{
|
{
|
||||||
var buyItem = DownBuyList[market];
|
var buyItem = DownBuyList[market];
|
||||||
var flag = (bool)buyItem["Flag"];
|
var flag = (bool)buyItem["Flag"];
|
||||||
var finalSellPrice = (double)buyItem["finalSellPrice"];
|
|
||||||
if (interval < MCandleTimeType.H1)
|
if (interval < MCandleTimeType.H1)
|
||||||
{
|
{
|
||||||
var buyTime = ((DateTime)buyItem["CandleTime"]).AddMinutes((int)interval);
|
var buyTime = ((DateTime)buyItem["CandleTime"]).AddMinutes((int)interval);
|
||||||
@@ -1188,20 +1198,6 @@ namespace BitgetAPI.IndicatorConditionSetup
|
|||||||
|
|
||||||
var sellFlag = false;
|
var sellFlag = false;
|
||||||
|
|
||||||
if (finalSellPrice < candleData.Close)
|
|
||||||
sellFlag = true;
|
|
||||||
|
|
||||||
if (buyTimeUnix < 저고점_30["tempLowVal"])
|
|
||||||
{
|
|
||||||
if (저고점_30["전저가"] > 저고점_30["전전저가"])
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
if (저고점_30["전전저가"] < candleData.Close)
|
|
||||||
{
|
|
||||||
sellFlag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (candleData.Close > candleData_전봉.High ||
|
if (candleData.Close > candleData_전봉.High ||
|
||||||
candleData.Close > candleData_전전봉.High ||
|
candleData.Close > candleData_전전봉.High ||
|
||||||
|
|||||||
Reference in New Issue
Block a user