30분봉으로 다시 수정
This commit is contained in:
@@ -76,7 +76,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
// 스레드 시작/종료 플래그
|
||||
public bool Is_th_SignalInfo;
|
||||
public Dictionary<string, Dictionary<string, double>> 전저고점 = new Dictionary<string, Dictionary<string, double>>();
|
||||
public Dictionary<string, bool> FirstFlag = new Dictionary<string, bool>();
|
||||
|
||||
public List<object> checkedMarkets;
|
||||
public List<object> intervalList;
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
{
|
||||
var dic = new Dictionary<string, double>();
|
||||
dic.Add("전고가", 0);
|
||||
dic.Add("전저가", 0);
|
||||
dic.Add("전저가", 0);
|
||||
dic.Add("전전고가", 0);
|
||||
dic.Add("전전저가", 0);
|
||||
dic.Add("전전전저가", 0);
|
||||
@@ -290,7 +290,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
BuyLongStep[market + strInterval] = false;
|
||||
}
|
||||
|
||||
if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "15m") && 전저고점.ContainsKey(market + "30m")))
|
||||
if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "30m")))
|
||||
continue;
|
||||
|
||||
#region 1분봉 처리
|
||||
@@ -334,47 +334,47 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전전전봉);
|
||||
#endregion
|
||||
|
||||
#region 15분봉 처리
|
||||
|
||||
#region 5분봉 처리
|
||||
// 시간별로 정렬하기 (임시 리스트)
|
||||
var candleDatas_15 = findedMarket.candleDataList[MCandleTimeType.M15];
|
||||
var candleDatas_15_정렬 = candleDatas_15.OrderBy(i => i.Argument).ToList();
|
||||
var candleDatas_5 = findedMarket.candleDataList[MCandleTimeType.M5];
|
||||
var candleDatas_5_정렬 = candleDatas_5.OrderBy(i => i.Argument).ToList();
|
||||
|
||||
var candleData_15 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||
var candleData_5 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
||||
|
||||
if (candleData_15 == null) continue;
|
||||
if (candleData_5 == null) continue;
|
||||
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15);
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5);
|
||||
|
||||
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||
var candleData_15_전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
||||
var candleData_5_전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
||||
|
||||
if (candleData_15_전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전봉);
|
||||
if (candleData_5_전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전봉);
|
||||
|
||||
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||
var candleData_15_전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
||||
var candleData_5_전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
||||
|
||||
if (candleData_15_전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전봉);
|
||||
if (candleData_5_전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전봉);
|
||||
|
||||
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||
var candleData_15_전전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
||||
var candleData_5_전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
||||
|
||||
if (candleData_15_전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전전봉);
|
||||
if (candleData_5_전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전봉);
|
||||
|
||||
|
||||
candleDatas_15_정렬.RemoveAt(candleDatas_15_정렬.Count - 1);
|
||||
var candleData_15_전전전전봉 = candleDatas_15.Find(i => i.Argument == candleDatas_15_정렬.Last().Argument);
|
||||
candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1);
|
||||
var candleData_5_전전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument);
|
||||
|
||||
if (candleData_15_전전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_15_정렬, candleData_15_전전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_15_정렬, candleData_15_전전전전봉);
|
||||
if (candleData_5_전전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전전봉);
|
||||
#endregion
|
||||
|
||||
#region 30분봉 처리
|
||||
@@ -419,49 +419,6 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전전봉);
|
||||
#endregion
|
||||
|
||||
#region 60분봉 처리
|
||||
// 시간별로 정렬하기 (임시 리스트)
|
||||
var candleDatas_60 = findedMarket.candleDataList[MCandleTimeType.H1];
|
||||
var candleDatas_60_정렬 = candleDatas_60.OrderBy(i => i.Argument).ToList();
|
||||
|
||||
var candleData_60 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||
|
||||
if (candleData_60 == null) continue;
|
||||
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60);
|
||||
|
||||
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||
var candleData_60_전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||
|
||||
if (candleData_60_전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전봉);
|
||||
|
||||
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||
var candleData_60_전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||
|
||||
if (candleData_60_전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전봉);
|
||||
|
||||
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||
var candleData_60_전전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||
|
||||
if (candleData_60_전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전전봉);
|
||||
|
||||
|
||||
candleDatas_60_정렬.RemoveAt(candleDatas_60_정렬.Count - 1);
|
||||
var candleData_60_전전전전봉 = candleDatas_60.Find(i => i.Argument == candleDatas_60_정렬.Last().Argument);
|
||||
|
||||
if (candleData_60_전전전전봉 == null) continue;
|
||||
ichimokuConditionSetup.calIchimokuData(candleDatas_60_정렬, candleData_60_전전전전봉);
|
||||
movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_60_정렬, candleData_60_전전전전봉);
|
||||
#endregion
|
||||
|
||||
|
||||
if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선
|
||||
&& candleData.Close > candleData.IchimokData.상한선)
|
||||
{
|
||||
@@ -568,7 +525,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
var 전봉20 = candleData_전봉.movingAverageDataList[20].Value;
|
||||
var 전봉40 = candleData_전봉.movingAverageDataList[40].Value;
|
||||
var 전봉80 = candleData_전봉.movingAverageDataList[80].Value;
|
||||
var 전봉80 = candleData_전봉.movingAverageDataList[80].Value;
|
||||
var 전봉160 = candleData_전봉.movingAverageDataList[160].Value;
|
||||
//var 전봉240 = candleData_전봉.movingAverageDataList[240].Value;
|
||||
//var 전봉480 = candleData_전봉.movingAverageDataList[480].Value;
|
||||
@@ -620,22 +577,17 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var Bol72_Up = candleData.movingAverageDataList[72].BolangerValue_Up;
|
||||
#endregion
|
||||
|
||||
var 현재봉3_15 = candleData_15.movingAverageDataList[3].Value;
|
||||
var 전봉3_15 = candleData_15_전봉.movingAverageDataList[3].Value;
|
||||
var 전전봉3_15 = candleData_15_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_15 = candleData_15_전전전봉.movingAverageDataList[3].Value;
|
||||
var 현재봉3_5 = candleData_5.movingAverageDataList[3].Value;
|
||||
var 전봉3_5 = candleData_5_전봉.movingAverageDataList[3].Value;
|
||||
var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_5 = candleData_5_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var 현재봉3_30 = candleData_30.movingAverageDataList[3].Value;
|
||||
var 전봉3_30 = candleData_30_전봉.movingAverageDataList[3].Value;
|
||||
var 전전봉3_30 = candleData_30_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_30 = candleData_30_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var 현재봉3_60 = candleData_60.movingAverageDataList[3].Value;
|
||||
var 전봉3_60 = candleData_60_전봉.movingAverageDataList[3].Value;
|
||||
var 전전봉3_60 = candleData_60_전전봉.movingAverageDataList[3].Value;
|
||||
var 전전전봉3_60 = candleData_60_전전전봉.movingAverageDataList[3].Value;
|
||||
|
||||
var oneList = new List<double>() {
|
||||
var oneList = new List<double>() {
|
||||
현재봉24,
|
||||
현재봉48,
|
||||
현재봉72,
|
||||
@@ -649,13 +601,13 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
};
|
||||
|
||||
|
||||
var 저고점_1 = 전저고점[market + "1m"];
|
||||
var 저고점_15 = 전저고점[market + "15m"];
|
||||
var 저고점_1 = 전저고점[market + "1m"];
|
||||
var 저고점_5 = 전저고점[market + "5m"];
|
||||
var 저고점_30 = 전저고점[market + "30m"];
|
||||
|
||||
var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉3, 전전봉3, 전전전봉3, candleData);
|
||||
if (!returnVal) continue;
|
||||
returnVal = Calculate전고점(market, "15m", MCandleTimeType.M5, 전봉3_15, 전전봉3_15, 전전전봉3_15, candleData_15);
|
||||
returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉3_5, 전전봉3_5, 전전전봉3_5, candleData_5);
|
||||
if (!returnVal) continue;
|
||||
returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉3_30, 전전봉3_30, 전전전봉3_30, candleData_30);
|
||||
if (!returnVal) continue;
|
||||
@@ -680,30 +632,27 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
if (!UpBuyList.ContainsKey(market))
|
||||
{
|
||||
|
||||
|
||||
var buyFlag = false;
|
||||
|
||||
// 30분봉
|
||||
var flag_30 =
|
||||
//(저고점_30["전전전저가"] > 저고점_30["전전저가"]
|
||||
// && (저고점_30["전전저가"] < 전봉3 && 저고점_30["전전저가"] < 전전봉3 && 저고점_30["전전저가"] < 현재봉3 && 전전봉3 > 전봉3 && 전봉3 < 현재봉3)
|
||||
//&& 현재봉3_30 > 저고점_30["전고가"]) ||
|
||||
(저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 전봉3_30 < 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]);
|
||||
//|| (저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"])
|
||||
|| (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 > 저고점_5["전고가"]);
|
||||
|
||||
var flag_1 = 현재봉3 > oneList.Max();
|
||||
|
||||
var flag_15 =
|
||||
(저고점_15["전전전저가"] > 저고점_15["전전저가"] && 저고점_15["전전저가"] < 저고점_15["전저가"] && 저고점_15["전고가"] > 전봉3_15 && 현재봉3_15 > 저고점_15["전고가"])
|
||||
// || (저고점_15["전전전고가"] > 저고점_15["전전고가"] && 저고점_15["전전고가"] > 저고점_15["전고가"]&&저고점_15["전전전저가"] > 저고점_15["전전저가"] && 저고점_15["전전저가"] > 저고점_15["전저가"] && 저고점_15["전고가"] > 전봉3_15 && 현재봉3_15 > 저고점_15["전고가"])
|
||||
//|| (저고점_15["전전전고가"] < 저고점_15["전전고가"] && 저고점_15["전전고가"] > 저고점_15["전고가"] && 전봉3_15 < 저고점_15["전전고가"] && 현재봉3_15 > 저고점_15["전전고가"])
|
||||
;
|
||||
|
||||
var flag_30 = 저고점_30["전고가"] < 현재봉3_30;
|
||||
|
||||
var flag_60 = 현재봉3_60 > 전봉3_60 && 전봉3_60 > 전전봉3_60;
|
||||
|
||||
|
||||
if (flag_1 && flag_15 && flag_30 && flag_60)
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
buyFlag = true;
|
||||
}
|
||||
if (!FirstFlag.ContainsKey(market + "Up"))
|
||||
FirstFlag[market + "Up"] = false;
|
||||
|
||||
if (buyFlag && FirstFlag[market + "Up"])
|
||||
if (buyFlag)
|
||||
{
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
@@ -766,9 +715,8 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!flag_15)
|
||||
FirstFlag[market + "Up"] = true;
|
||||
}
|
||||
|
||||
//파는 시점
|
||||
else
|
||||
{
|
||||
@@ -777,7 +725,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var flag = (bool)buyItem["Flag"];
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(15);
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(30);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
@@ -790,31 +738,31 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
|
||||
var sellFlag = false;
|
||||
|
||||
if (저고점_30["전저가"] > 전봉3_30)
|
||||
sellFlag = true;
|
||||
|
||||
if (flag)
|
||||
{
|
||||
if (저고점_15["전전고가"] > 저고점_15["전고가"])
|
||||
if (저고점_30["전고가"] < 저고점_30["전전고가"])
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (저고점_15["전전고가"] > 현재봉3_15)
|
||||
if (저고점_30["전전고가"] > 현재봉3_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!flag)
|
||||
if (저고점_30["전저가"] > 현재봉3_30)
|
||||
{
|
||||
if (저고점_15["전저가"] > 현재봉3_15)
|
||||
sellFlag = true;
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (저고점_15["전고가"] > 저고점_15["전전고가"])
|
||||
if (저고점_30["전고가"] > 저고점_30["전전고가"])
|
||||
{
|
||||
buyItem["Flag"] = true;
|
||||
buyItem["Flag"] = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -910,26 +858,27 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
|
||||
var buyFlag = false;
|
||||
|
||||
//var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"])
|
||||
// || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_30 =
|
||||
//(저고점_30["전전전고가"] < 저고점_30["전전고가"]
|
||||
//&& (저고점_30["전전고가"] > 전봉3 && 저고점_30["전전고가"] > 전전봉3 && 저고점_30["전전고가"] > 현재봉3 && 전전봉3 < 전봉3 && 전봉3 > 현재봉3)
|
||||
//&& 현재봉3_30 < 저고점_30["전저가"]) ||
|
||||
(저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 전봉3_30 > 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
//|| (저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]);
|
||||
|
||||
var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"])
|
||||
|| (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 < 저고점_5["전저가"]);
|
||||
|
||||
var flag_1 = 현재봉3 < oneList.Min();
|
||||
|
||||
var flag_15 =
|
||||
(저고점_15["전전전고가"] < 저고점_15["전전고가"] && 저고점_15["전전고가"] > 저고점_15["전고가"] && 전봉3_15 > 저고점_15["전저가"] && 현재봉3_15 < 저고점_15["전저가"])
|
||||
//|| (저고점_15["전전전고가"] < 저고점_15["전전고가"] && 저고점_15["전전고가"] < 저고점_15["전고가"] && 저고점_15["전전전저가"] < 저고점_15["전전저가"] && 저고점_15["전전저가"] < 저고점_15["전저가"] && 전봉3_15 > 저고점_15["전저가"] && 현재봉3_15 < 저고점_15["전저가"])
|
||||
//|| (저고점_30["전전전저가"] > 저고점_15["전전저가"] && 저고점_15["전전저가"] < 저고점_15["전저가"] && 전봉3_15 > 저고점_15["전전저가"] && 현재봉3_15 < 저고점_15["전전저가"])
|
||||
;
|
||||
|
||||
var flag_30 = 저고점_30["전저가"] > 현재봉3_30;
|
||||
|
||||
var flag_60 = 현재봉3_60 < 전봉3_60 && 전봉3_60 < 전전봉3_60;
|
||||
|
||||
|
||||
if (flag_1 && flag_15 && flag_30 && flag_60)
|
||||
if (flag_30 && flag_5 && flag_1)
|
||||
{
|
||||
buyFlag = true;
|
||||
}
|
||||
if (!FirstFlag.ContainsKey(market + "Down"))
|
||||
FirstFlag[market + "Down"] = false;
|
||||
if (buyFlag && FirstFlag[market + "Down"])
|
||||
|
||||
if (buyFlag)
|
||||
{
|
||||
// 없으면 생성
|
||||
if (signalData == null)
|
||||
@@ -991,8 +940,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!flag_15)
|
||||
FirstFlag[market + "Down"] = true;
|
||||
|
||||
}
|
||||
|
||||
//파는 시점
|
||||
@@ -1002,7 +950,7 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
var flag = (bool)buyItem["Flag"];
|
||||
if (interval < MCandleTimeType.H1)
|
||||
{
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(15);
|
||||
var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(30);
|
||||
if (nowTime < buyTime)
|
||||
continue;
|
||||
}
|
||||
@@ -1015,24 +963,27 @@ namespace BitgetAPI.IndicatorConditionSetup
|
||||
}
|
||||
var sellFlag = false;
|
||||
|
||||
if (저고점_30["전고가"] < 전봉3_30)
|
||||
sellFlag = true;
|
||||
|
||||
if (flag)
|
||||
{
|
||||
if (저고점_15["전전저가"] < 저고점_15["전저가"])
|
||||
if (저고점_30["전저가"] > 저고점_30["전전저가"])
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
|
||||
if (저고점_15["전전저가"] < 현재봉3_15)
|
||||
if (저고점_30["전전저가"] < 현재봉3_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (저고점_15["전고가"] < 현재봉3_15)
|
||||
if (저고점_30["전고가"] < 현재봉3_30)
|
||||
{
|
||||
sellFlag = true;
|
||||
|
||||
if (저고점_15["전저가"] < 저고점_15["전전저가"])
|
||||
}
|
||||
if (저고점_30["전저가"] < 저고점_30["전전저가"])
|
||||
{
|
||||
buyItem["Flag"] = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user