2번조건가지 추가 처리 (1번조건은 판매조건에 전봉으로 처리)

This commit is contained in:
kyh
2024-11-27 15:08:09 +09:00
parent 3fc5ce4045
commit ec596d41c4

View File

@@ -122,6 +122,9 @@ namespace BitgetAPI.IndicatorConditionSetup
public Dictionary<string, Dictionary<int, bool>> SellShortStep = new Dictionary<string, Dictionary<int, bool>>();
public Dictionary<string, Dictionary<int, bool>> SellLongStep = new Dictionary<string, Dictionary<int, bool>>();
public Dictionary<string, bool> BuyShortStep = new Dictionary<string, bool>();
public Dictionary<string, bool> BuyLongStep = new Dictionary<string, bool>();
@@ -432,15 +435,41 @@ namespace BitgetAPI.IndicatorConditionSetup
{
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(BuyLongStep.ContainsKey(market + interval) && BuyLongStep[market + interval])
{
if (현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2)
{
if (Bol12 > Bol24 && 전봉Bol12 > 전봉Bol24 &&
전봉Bol12 > Bol12 && 전봉Bol24 > Bol24 &&
전봉Bol12 - 전봉Bol24 > Bol12 - Bol24)
{
buyType = 2;
buyFlag = true;
}
}
}
else
{
if (
candleData.IchimokData.하한선 > 현재봉2 && candleData_전봉.IchimokData.하한선 > 전봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉24 > 전봉2 && 현재봉24 < 현재봉2 &&
전봉12 < 전봉2 && 현재봉12 < 현재봉24
)
{
buyFlag = true; ;
buyType = 1;
}
else if (
candleData.IchimokData.상한선 < 현재봉2 && candleData_전봉.IchimokData.상한선 < 전봉2 &&
현재봉72 < 현재봉2 && 전봉72 < 전봉2 && 전봉24 > 전봉2 && 현재봉24 < 현재봉2
)
{
BuyShortStep[market + interval] = true;
continue;
}
}
if (buyFlag)
{
@@ -531,40 +560,47 @@ namespace BitgetAPI.IndicatorConditionSetup
switch (type)
{
case 1:
if (현재봉12 > 현재봉24 && !val[2])
if (전봉12 > 전봉24 && !val[2])
val[2] = true;
if (현재봉2 > 현재봉72 && !val[3])
if (전봉2 > 전봉72 && !val[3])
val[3] = true;
if (현재봉12 > 현재봉72 && !val[4])
if (전봉12 > 전봉72 && !val[4])
val[4] = true;
if (현재봉24 > 현재봉72 && !val[5])
if (전봉24 > 전봉72 && !val[5])
val[5] = true;
if (val[1] && !val[2] && !val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉12 < 현재봉24 && 현재봉24 < 현재봉2 && 현재봉2 < 현재봉72);
sellFlag = !(전봉12 < 전봉24 && 전봉24 < 전봉2 && 전봉2 < 전봉72);
}
else if (val[1] && val[2] && !val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉24 < 현재봉12 && 현재봉12 < 현재봉2 && 현재봉2 < 현재봉72);
sellFlag = !(전봉24 < 전봉12 && 전봉12 < 전봉2 && 전봉2 < 전봉72);
}
else if (val[1] && !val[2] && val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉12 < 현재봉24 && 현재봉24 < 현재봉72 && 현재봉72 < 현재봉2);
sellFlag = !(전봉12 < 전봉24 && 전봉24 < 전봉72 && 전봉72 < 전봉2);
}
else if (val[1] && val[2] && val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉24 < 현재봉12 && 현재봉12 < 현재봉72 && 현재봉72 < 현재봉2);
sellFlag = !(전봉24 < 전봉12 && 전봉12 < 전봉72 && 전봉72 < 전봉2);
}
else if (val[1] && val[2] && val[3] && val[4] && !val[5])
{
sellFlag = !(현재봉24 < 현재봉72 && 현재봉72 < 현재봉12 && 현재봉12 < 현재봉2);
sellFlag = !(전봉24 < 전봉72 && 전봉72 < 전봉12 && 전봉12 < 전봉2);
}
else if (val[1] && val[2] && val[3] && val[4] && val[5])
{
sellFlag = !(현재봉72 < 현재봉24 && 현재봉24 < 현재봉12 && 현재봉12 < 현재봉2);
sellFlag = !(전봉72 < 전봉24 && 전봉24 < 전봉12 && 전봉12 < 전봉2);
}
break;
case 2:
if (Bol12 > 전봉Bol12 && Bol24 > 전봉Bol24)
{
sellFlag = true;
}
break;
}
if (sellFlag)
@@ -657,15 +693,41 @@ namespace BitgetAPI.IndicatorConditionSetup
{
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
)
if (BuyShortStep.ContainsKey(market + interval) && BuyShortStep[market + interval])
{
buyFlag = true;
buyType = 1;
//72 > 24 > 12 > 2
if (현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2)
{
if (Bol12 > Bol24 && 전봉Bol12 > 전봉Bol24 &&
전봉Bol12 > Bol12 && 전봉Bol24 > Bol24 &&
전봉Bol12 - 전봉Bol24 > Bol12 - Bol24)
{
buyType = 2;
buyFlag = true;
}
}
}
else
{
if (
candleData.IchimokData.상한선 < 현재봉2 && candleData_전봉.IchimokData.상한선 < 전봉2 &&
현재봉72 < 현재봉2 && 전봉72 < 전봉2 && 전봉24 < 전봉2 && 현재봉24 > 현재봉2 &&
전봉12 > 전봉2 && 현재봉12 > 현재봉24
)
{
buyFlag = true;
buyType = 1;
}
else if (
candleData.IchimokData.하한선 > 현재봉2 && candleData_전봉.IchimokData.하한선 > 전봉2 &&
현재봉72 > 현재봉2 && 전봉72 > 전봉2 && 전봉24 < 전봉2 && 현재봉24 > 현재봉2
)
{
BuyShortStep[market + interval] = true;
continue;
}
}
if (buyFlag)
{
@@ -706,7 +768,10 @@ namespace BitgetAPI.IndicatorConditionSetup
[5] = false
};
SellShortStep.Add(market + interval, dic);
if(buyType == 2)
{
BuyShortStep[market + interval] = false;
}
if (ShortCount < 5)
{
double size = YHKIM_OrderAmount / price * YHKIM_Leverage;
@@ -752,46 +817,53 @@ namespace BitgetAPI.IndicatorConditionSetup
}
int.TryParse(buyItem["Type"].ToString(), out var type);
var val = SellShortStep[market + interval];
switch (type)
{
case 1:
if (현재봉12 < 현재봉24 && !val[2])
var val = SellShortStep[market + interval];
if (전봉12 < 전봉24 && !val[2])
val[2] = true;
if (현재봉2 < 현재봉72 && !val[3])
if (전봉2 < 전봉72 && !val[3])
val[3] = true;
if (현재봉12 < 현재봉72 && !val[4])
if (전봉12 < 전봉72 && !val[4])
val[4] = true;
if (현재봉24 < 현재봉72 && !val[5])
if (전봉24 < 전봉72 && !val[5])
val[5] = true;
if (val[1] && !val[2] && !val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉12 > 현재봉24 && 현재봉24 > 현재봉2 && 현재봉2 > 현재봉72);
sellFlag = !(전봉12 > 전봉24 && 전봉24 > 전봉2 && 전봉2 > 전봉72);
}
else if (val[1] && val[2] && !val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉24 > 현재봉12 && 현재봉12 > 현재봉2 && 현재봉2 > 현재봉72);
sellFlag = !(전봉24 > 전봉12 && 전봉12 > 전봉2 && 전봉2 > 전봉72);
}
else if (val[1] && !val[2] && val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉12 > 현재봉24 && 현재봉24 > 현재봉72 && 현재봉72 > 현재봉2);
sellFlag = !(전봉12 > 전봉24 && 전봉24 > 전봉72 && 전봉72 >전봉2);
}
else if (val[1] && val[2] && val[3] && !val[4] && !val[5])
{
sellFlag = !(현재봉24 > 현재봉12 && 현재봉12 > 현재봉72 && 현재봉72 > 현재봉2);
sellFlag = !(전봉24 > 전봉12 && 전봉12 > 전봉72 && 전봉72 > 전봉2);
}
else if (val[1] && val[2] && val[3] && val[4] && !val[5])
{
sellFlag = !(현재봉24 > 현재봉72 && 현재봉72 > 현재봉12 && 현재봉12 > 현재봉2);
sellFlag = !(전봉24 > 전봉72 && 전봉72 > 전봉12 && 전봉12 > 전봉2);
}
else if (val[1] && val[2] && val[3] && val[4] && val[5])
{
sellFlag = !(현재봉72 > 현재봉24 && 현재봉24 > 현재봉12 && 현재봉12 > 현재봉2);
sellFlag = !(전봉72 > 전봉24 && 전봉24 > 전봉12 && 전봉12 > 전봉2);
}
else
sellFlag = true;
break;
case 2:
if(Bol12 > 전봉Bol12 && Bol24 > 전봉Bol24)
{
sellFlag = true;
}
break;
}
if (sellFlag)