This commit is contained in:
kyh
2024-11-26 22:02:59 +09:00
parent 8bc214ad9d
commit 31a3eb18f4

View File

@@ -394,7 +394,7 @@ namespace BitgetAPI.IndicatorConditionSetup
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 현재봉24 = candleData.movingAverageDataList[24].Value;
var 현재봉36 = candleData.movingAverageDataList[36].Value;
var 현재봉72 = candleData.movingAverageDataList[72].Value;
@@ -413,7 +413,7 @@ namespace BitgetAPI.IndicatorConditionSetup
if ((int)interval != 1)
{
continue;
}
}
if (영호조건식_상향돌파)
{
@@ -430,13 +430,20 @@ namespace BitgetAPI.IndicatorConditionSetup
//사는 시점
if (!UpBuyList.ContainsKey(market + interval))
{
var buyFlag = false;
var buyType = 0;
if (
candleData.IchimokData.하한선 > 현재봉2 && candleData_전봉.IchimokData.하한선 > 전봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉24 > 전봉2 && 현재봉24 < 현재봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉24 > 전봉2 && 현재봉24 < 현재봉2 &&
전봉12 < 전봉2 && 현재봉12 < 현재봉24
)
)
{
buyFlag = true; ;
buyType = 1;
}
if (buyFlag)
{
// 없으면 생성
if (signalData == null)
{
@@ -458,7 +465,7 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "BuyDate", nowTime },
{ "Price", price },
{ "MCandleTimeType", (int)interval },
{ "Type", 1 },
{ "Type", buyType },
{ "CandleTime", candleData.Argument },
{ "MovingRate4_8", 현재봉8 - 현재봉4 },
{ "Candle", candleData }
@@ -490,19 +497,35 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "Price", price },
{ "MCandleTimeType", (int)interval },
{ "Candle", candleData },
{ "Size", size },
{ "Size", size },
{ "orderId", orderDic["orderId"] }
};
BuyLongList.Add(orderDataDic);
LongCount++;
}
}
}
}
}
//파는 시점
else
{
var buyItem = UpBuyList[market + interval];
if (interval < MCandleTimeType.H1)
{
var buyTime = ((DateTime)buyItem["BuyDate"]).AddHours((int)interval / 60);
if (nowTime < buyTime)
continue;
}
//임시로 처리
else
{
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval);
if (nowTime < buyTime)
continue;
}
var sellFlag = false;
int.TryParse(buyItem["Type"].ToString(), out var type);
var val = SellLongStep[market + interval];
@@ -545,7 +568,7 @@ namespace BitgetAPI.IndicatorConditionSetup
break;
}
if (sellFlag)
if (sellFlag)
{
double.TryParse(buyItem["Price"].ToString(), out var buyPrice);
var resultRate = ((price - buyPrice) / buyPrice) * 100;
@@ -601,7 +624,7 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "BuyCandle", buyItem["Candle"] },
{ "SellDate", nowTime},
{ "SellPrice", price},
{ "SellCandle", candleData },
{ "SellCandle", candleData },
{ "Rate", resultRateData }
};
ResultList.Add(orderResult);
@@ -633,14 +656,20 @@ namespace BitgetAPI.IndicatorConditionSetup
//사는 시점
if (!DownBuyList.ContainsKey(market + interval))
{
var buyFlag = false;
var buyType = 0;
if (
candleData.IchimokData.상한선 < 현재봉2 && candleData_전봉.IchimokData.상한선 < 전봉2 &&
현재봉72 < 현재봉2 && 전봉72 < 전봉2 && 전봉24 < 전봉2 && 현재봉24 > 현재봉2 &&
전봉12 > 전봉2 && 현재봉12 > 현재봉24
)
)
{
buyFlag = true;
buyType = 1;
}
if (buyFlag)
{
// 없으면 생성
if (signalData == null)
{
@@ -662,7 +691,7 @@ namespace BitgetAPI.IndicatorConditionSetup
{ "BuyDate", nowTime },
{ "Price", price },
{ "MCandleTimeType", (int)interval },
{ "Type", 1 },
{ "Type", buyType },
{ "CandleTime", candleData.Argument },
{ "MovingRate4_8", 현재봉4 - 현재봉8 },
{ "Candle", candleData }
@@ -701,13 +730,28 @@ namespace BitgetAPI.IndicatorConditionSetup
ShortCount++;
}
}
}
}
}
//파는 시점
else
{
var sellFlag = false;
var buyItem = UpBuyList[market + interval];
var buyItem = DownBuyList[market + interval];
if (interval < MCandleTimeType.H1)
{
var buyTime = ((DateTime)buyItem["BuyDate"]).AddHours((int)interval / 60);
if (nowTime < buyTime)
continue;
}
//임시로 처리
else
{
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval);
if (nowTime < buyTime)
continue;
}
int.TryParse(buyItem["Type"].ToString(), out var type);
var val = SellShortStep[market + interval];
switch (type)
@@ -832,7 +876,7 @@ namespace BitgetAPI.IndicatorConditionSetup
Console.WriteLine(e.Message);
}
}
}
}
public Dictionary<string, object> GetPendingOrders()
{
@@ -866,7 +910,7 @@ namespace BitgetAPI.IndicatorConditionSetup
public List<Dictionary<string, object>> GetFutureAccountList()
{
var timestamp = GetTimeStamp().ToString();
@@ -884,7 +928,7 @@ namespace BitgetAPI.IndicatorConditionSetup
public Dictionary<string, object> CancelFutureOrder(string symbol, string orderId)
{
var timestamp = GetTimeStamp().ToString();
@@ -902,7 +946,7 @@ namespace BitgetAPI.IndicatorConditionSetup
public Dictionary<string, object> ChangeFuturePositionMode(FuturePositionMode mode)
{
var timestamp = GetTimeStamp().ToString();
@@ -921,7 +965,7 @@ namespace BitgetAPI.IndicatorConditionSetup
public Dictionary<string, object> GetFutureOrderDetail(string symbol, string orderId)
{
var timestamp = GetTimeStamp().ToString();
// sell은 ClientOID 가 필요
@@ -970,7 +1014,7 @@ namespace BitgetAPI.IndicatorConditionSetup
if (orderType == OrderType.market)
price = 0;
var timestamp = GetTimeStamp().ToString();