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