최신
This commit is contained in:
@@ -367,24 +367,28 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
// 24,72 낮은값
|
||||
var 낮은값_8_12 = Math.Min(candleData.movingAverageDataList[8].Value, candleData.movingAverageDataList[12].Value);
|
||||
|
||||
var 전전전봉2 = candleData_전전전봉.movingAverageDataList[2].Value;
|
||||
var 전전전봉4 = candleData_전전전봉.movingAverageDataList[4].Value;
|
||||
var 전전전봉8 = candleData_전전전봉.movingAverageDataList[8].Value;
|
||||
var 전전전봉12 = candleData_전전전봉.movingAverageDataList[12].Value;
|
||||
var 전전전봉24 = candleData_전전전봉.movingAverageDataList[24].Value;
|
||||
var 전전전봉72 = candleData_전전전봉.movingAverageDataList[72].Value;
|
||||
|
||||
var 전전봉2 = candleData_전전봉.movingAverageDataList[2].Value;
|
||||
var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value;
|
||||
var 전전봉8 = candleData_전전봉.movingAverageDataList[8].Value;
|
||||
var 전전봉12 = candleData_전전봉.movingAverageDataList[12].Value;
|
||||
var 전전봉24 = candleData_전전봉.movingAverageDataList[24].Value;
|
||||
var 전전봉72 = candleData_전전봉.movingAverageDataList[72].Value;
|
||||
|
||||
var 전봉2 = candleData_전봉.movingAverageDataList[2].Value;
|
||||
var 전봉4 = candleData_전봉.movingAverageDataList[4].Value;
|
||||
var 전봉8 = candleData_전봉.movingAverageDataList[8].Value;
|
||||
var 전봉12 = candleData_전봉.movingAverageDataList[12].Value;
|
||||
var 전봉24 = candleData_전봉.movingAverageDataList[24].Value;
|
||||
var 전봉72 = candleData_전봉.movingAverageDataList[72].Value;
|
||||
|
||||
var 현재봉2 = candleData.movingAverageDataList[2].Value;
|
||||
var 현재봉4 = candleData.movingAverageDataList[4].Value;
|
||||
var 현재봉8 = candleData.movingAverageDataList[8].Value;
|
||||
var 현재봉12 = candleData.movingAverageDataList[12].Value;
|
||||
@@ -403,7 +407,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var Bol12 = candleData.movingAverageDataList[12].BolangerValue;
|
||||
var Bol24 = candleData.movingAverageDataList[24].BolangerValue;
|
||||
|
||||
if ((int)interval != 3)
|
||||
if ((int)interval != 1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -429,18 +433,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{
|
||||
//사는 시점
|
||||
if (!UpBuyList.ContainsKey(market + interval))
|
||||
{
|
||||
{
|
||||
if (
|
||||
candleData.Close > 현재봉24 &&
|
||||
candleData.High == candleData.Close && candleData.Open < 현재봉24 &&
|
||||
전봉4 < 전봉24 &&
|
||||
전봉24 > 전봉72 &&
|
||||
전봉12 > 전봉4 && 전봉8 > 전봉4 &&
|
||||
전봉4 > candleData.IchimokData.하한선 &&
|
||||
FirstLongFlag[market + interval]
|
||||
)
|
||||
낮은값_72_24_전봉 < 전봉2 && 전전봉2 < 낮은값_72_24_전전봉 &&
|
||||
낮은값_72_24_전봉 > 전봉8
|
||||
)
|
||||
{
|
||||
|
||||
FirstLongFlag[market + interval] = false;
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
{
|
||||
@@ -462,6 +461,9 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{ "BuyDate", nowTime },
|
||||
{ "Price", price },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "Type", 전봉24 < 전봉72 ? 24 : 72 },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "MovingRate4_8", 현재봉8 - 현재봉4 },
|
||||
{ "Candle", candleData }
|
||||
};
|
||||
|
||||
@@ -482,83 +484,186 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{ "Price", price },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "Candle", candleData },
|
||||
{ "Size", size },
|
||||
{ "Size", size },
|
||||
{ "orderId", orderDic["orderId"] }
|
||||
};
|
||||
BuyLongList.Add(orderDataDic);
|
||||
LongCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!FirstLongFlag[market + interval] && 현재봉4 < 낮은값_72_24)
|
||||
FirstLongFlag[market + interval] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
//파는 시점
|
||||
else
|
||||
{
|
||||
var buyItem = UpBuyList[market + interval];
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
//임시로 처리
|
||||
else
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
//var sellFlag = false;
|
||||
|
||||
var compareVal = 높은값_72_24;
|
||||
//if (interval < MCandleTimeType.H1)
|
||||
//{
|
||||
// var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
// if (nowTime < buyTime)
|
||||
// {
|
||||
// var candleTime = ((DateTime)buyItem["CandleTime"]);
|
||||
|
||||
// if (candleTime.Minute != candleData.Argument.Minute)
|
||||
// {
|
||||
// if (candleData_전봉.High < 높은값_72_24)
|
||||
// {
|
||||
// sellFlag = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
//continue;
|
||||
//}
|
||||
////임시로 처리
|
||||
//else
|
||||
//{
|
||||
// var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
// if (nowTime < buyTime) {
|
||||
// var candleTime = ((DateTime)buyItem["CandleTime"]);
|
||||
|
||||
// if (candleTime.Minute != candleData.Argument.Minute)
|
||||
// {
|
||||
// if (candleData_전봉.High < 높은값_72_24)
|
||||
// {
|
||||
// sellFlag = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//var compareVal = 높은값_72_24;
|
||||
//var val = SellLongStep[market + interval];
|
||||
//double.TryParse(buyItem["MovingRate4_8"].ToString(), out var buyMovingRage4_8);
|
||||
|
||||
//if (val == 0)
|
||||
//{
|
||||
// if (높은값_72_24 < 현재봉4)
|
||||
// {
|
||||
// val = 1;
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (val == 1)
|
||||
//{
|
||||
// if (현재봉4 > 현재봉8)
|
||||
// {
|
||||
// if (현재봉8 > 높은값_72_24)
|
||||
// {
|
||||
// val = 2;
|
||||
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (val == 0)
|
||||
//{
|
||||
// sellFlag = true;
|
||||
//}
|
||||
//else if (val == 1)
|
||||
//{
|
||||
// compareVal = 높은값_72_24;
|
||||
//}
|
||||
//else if (val == 2)
|
||||
//{
|
||||
// compareVal = 현재봉8;
|
||||
|
||||
// if (buyMovingRage4_8 < 현재봉4 - 현재봉8)
|
||||
// sellFlag = true;
|
||||
//}
|
||||
|
||||
//SellLongStep[market + interval] = val;
|
||||
|
||||
//if (전봉8 > 현재봉8 || 현재봉4 > compareVal)
|
||||
//{
|
||||
// sellFlag = true;
|
||||
//}
|
||||
|
||||
double compareVal = 0;
|
||||
int.TryParse(buyItem["Type"].ToString(), out var type);
|
||||
var val = SellLongStep[market + interval];
|
||||
var sellFlag = false;
|
||||
|
||||
if (val == 0)
|
||||
{
|
||||
if (높은값_72_24 < 현재봉4)
|
||||
if (type == 24) {
|
||||
if (val == 0)
|
||||
{
|
||||
val = 1;
|
||||
}
|
||||
}
|
||||
var origin = 전봉24;
|
||||
var compare = 전봉72;
|
||||
|
||||
if (val == 1)
|
||||
{
|
||||
if (현재봉4 > 현재봉8)
|
||||
{
|
||||
if (현재봉8 > 높은값_72_24)
|
||||
compareVal = origin;
|
||||
|
||||
if (origin > compare)
|
||||
{
|
||||
val = 2;
|
||||
|
||||
val = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(origin > 전봉2)
|
||||
{
|
||||
compareVal = origin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (val == 1)
|
||||
{
|
||||
compareVal = 높은값_72_24;
|
||||
|
||||
if (전봉2 > 전봉12)
|
||||
{
|
||||
val = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (val == 2)
|
||||
compareVal = 전봉12;
|
||||
}
|
||||
|
||||
if (val == 0)
|
||||
if(type == 72)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
else if (val == 1)
|
||||
{
|
||||
compareVal = 높은값_72_24;
|
||||
}
|
||||
else if (val == 2)
|
||||
{
|
||||
compareVal = 현재봉8;
|
||||
if(val == 0)
|
||||
{
|
||||
compareVal = 낮은값_72_24_전봉;
|
||||
if (전봉24 < 전봉2)
|
||||
{
|
||||
val = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (val == 1)
|
||||
{
|
||||
compareVal = 높은값_72_24;
|
||||
|
||||
if (전봉2 > 전봉12)
|
||||
{
|
||||
val = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (val == 2)
|
||||
compareVal = 전봉12;
|
||||
}
|
||||
|
||||
SellLongStep[market + interval] = val;
|
||||
|
||||
if (전봉8 > 현재봉8 || 현재봉4 > compareVal)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (sellFlag)
|
||||
if (전봉2 < compareVal || 전봉2 < 낮은값_72_24)
|
||||
{
|
||||
double.TryParse(buyItem["Price"].ToString(), out var buyPrice);
|
||||
var resultRate = ((price - buyPrice) / buyPrice) * 100;
|
||||
@@ -614,7 +719,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{ "BuyCandle", buyItem["Candle"] },
|
||||
{ "SellDate", nowTime},
|
||||
{ "SellPrice", price},
|
||||
{ "SellCandle", candleData },
|
||||
{ "SellCandle", candleData },
|
||||
{ "Rate", resultRateData }
|
||||
};
|
||||
ResultList.Add(orderResult);
|
||||
@@ -645,18 +750,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{
|
||||
//사는 시점
|
||||
if (!DownBuyList.ContainsKey(market + interval))
|
||||
{
|
||||
if (
|
||||
candleData.Close < 현재봉24 &&
|
||||
candleData.Low == candleData.Close && candleData.Open > 현재봉24 &&
|
||||
전봉4 > 전봉24 &&
|
||||
전봉24 < 전봉72 &&
|
||||
전봉12 < 전봉4 && 전봉8 < 전봉4 &&
|
||||
전봉4 < candleData.IchimokData.상한선 &&
|
||||
FirstShortFlag[market + interval]
|
||||
)
|
||||
{
|
||||
if (
|
||||
전봉24 > 전봉2 && 전봉24 < 전봉72 && 전전봉2 > 전전봉24 &&
|
||||
전봉2 < candleData_전봉.IchimokData.하한선
|
||||
)
|
||||
{
|
||||
|
||||
FirstShortFlag[market + interval] = false;
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
{
|
||||
@@ -678,6 +778,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{ "BuyDate", nowTime },
|
||||
{ "Price", price },
|
||||
{ "MCandleTimeType", (int)interval },
|
||||
{ "CandleTime", candleData.Argument },
|
||||
{ "MovingRate4_8", 현재봉4 - 현재봉8 },
|
||||
{ "Candle", candleData }
|
||||
};
|
||||
|
||||
@@ -706,84 +808,116 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
ShortCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!FirstShortFlag[market + interval] && 현재봉4 > 높은값_72_24)
|
||||
{
|
||||
FirstShortFlag[market + interval] = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//파는 시점
|
||||
else
|
||||
{
|
||||
var buyItem = DownBuyList[market + interval];
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
//임시로 처리
|
||||
else
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
var compareVal = 낮은값_72_24;
|
||||
var val = SellShortStep[market + interval];
|
||||
var sellFlag = false;
|
||||
|
||||
if (val == 0)
|
||||
{
|
||||
if (낮은값_72_24 > 현재봉4)
|
||||
{
|
||||
val = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(val == 1) {
|
||||
if (현재봉4 < 현재봉8)
|
||||
{
|
||||
if (현재봉8 < 낮은값_72_24)
|
||||
{
|
||||
val = 2;
|
||||
var buyItem = DownBuyList[market + interval];
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//if (interval < MCandleTimeType.H1)
|
||||
//{
|
||||
// var buyTime = ((DateTime)buyItem["BuyDate"]).AddHours(((int)interval/60) * 2);
|
||||
|
||||
if(val == 0)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
else if(val == 1)
|
||||
{
|
||||
compareVal = 낮은값_72_24;
|
||||
}
|
||||
else if(val == 2)
|
||||
{
|
||||
compareVal = 현재봉8;
|
||||
}
|
||||
// if (nowTime < buyTime)
|
||||
// {
|
||||
// var candleTime = ((DateTime)buyItem["CandleTime"]);
|
||||
|
||||
// if (candleTime.Hour != candleData.Argument.Hour)
|
||||
// {
|
||||
// if(candleData_전봉.Low < 낮은값_72_24)
|
||||
// {
|
||||
// sellFlag = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
//}
|
||||
////임시로 처리
|
||||
//else
|
||||
//{
|
||||
// var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval * 2);
|
||||
// if (nowTime < buyTime)
|
||||
// {
|
||||
// var candleTime = ((DateTime)buyItem["CandleTime"]);
|
||||
|
||||
// if (candleTime.Minute != candleData.Argument.Minute)
|
||||
// {
|
||||
// if (candleData_전봉.Low > 낮은값_72_24)
|
||||
// {
|
||||
// sellFlag = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
//var compareVal = 낮은값_72_24;
|
||||
//var val = SellShortStep[market + interval];
|
||||
|
||||
//double.TryParse(buyItem["MovingRate4_8"].ToString(), out var buyMovingRage4_8);
|
||||
|
||||
//if (val == 0)
|
||||
//{
|
||||
// if (낮은값_72_24 > 현재봉4)
|
||||
// {
|
||||
// val = 1;
|
||||
// }
|
||||
//}
|
||||
|
||||
//if(val == 1) {
|
||||
// if (현재봉4 < 현재봉8)
|
||||
// {
|
||||
// if (현재봉8 < 낮은값_72_24)
|
||||
// {
|
||||
// val = 2;
|
||||
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//if(val == 0)
|
||||
//{
|
||||
// sellFlag = true;
|
||||
//}
|
||||
//else if(val == 1)
|
||||
//{
|
||||
// compareVal = 낮은값_72_24;
|
||||
//}
|
||||
//else if (val == 2)
|
||||
//{
|
||||
// compareVal = 현재봉8;
|
||||
|
||||
// if (buyMovingRage4_8 < 현재봉8 - 현재봉4)
|
||||
// sellFlag = true;
|
||||
//}
|
||||
|
||||
|
||||
//SellShortStep[market + interval] = val;
|
||||
|
||||
if (전봉8 > 현재봉8 || 현재봉4 > compareVal)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
SellShortStep[market + interval] = val;
|
||||
|
||||
if (전봉8 < 현재봉8 || 현재봉4 > compareVal)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (sellFlag)
|
||||
//if (전봉8 < 현재봉8 || 현재봉4 > compareVal)
|
||||
//{
|
||||
// sellFlag = true;
|
||||
//}
|
||||
if (전봉2 > 전봉24)
|
||||
{
|
||||
double.TryParse(buyItem["Price"].ToString(), out var buyPrice);
|
||||
var resultRate = ((price - buyPrice) / buyPrice) * 100;
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
public int CandleLength48 { get; set; } = 48;
|
||||
// 기간
|
||||
public int CandleLength4 { get; set; } = 4;
|
||||
public int CandleLength2 { get; set; } = 2;
|
||||
// 기간
|
||||
public int CandleLength72 { get; set; } = 72;
|
||||
// 기간
|
||||
@@ -43,7 +44,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
if (candleData.movingAverageDataList == null)
|
||||
{
|
||||
candleData.movingAverageDataList = new Dictionary<int, MovingAverageData>();
|
||||
|
||||
candleData.movingAverageDataList.Add(CandleLength2, new MovingAverageData());
|
||||
candleData.movingAverageDataList.Add(CandleLength4, new MovingAverageData());
|
||||
candleData.movingAverageDataList.Add(CandleLength12, new MovingAverageData());
|
||||
candleData.movingAverageDataList.Add(CandleLength24, new MovingAverageData());
|
||||
|
||||
Reference in New Issue
Block a user