private void btnLoadData_Click(object sender, EventArgs e) { //string itemCode = ItemCodeSet.GetItemCode(ItemCode.선물_해외_WTI); string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , 120); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData(itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } chartCS1.LoadData(itemCode, sourceDatas); }
private void timer_TickKr(object state) { if (!isLogoned) { return; } if (isRuning) { return; } isRuning = true; Task.Factory.StartNew(() => { if (isAutoKospi) { queryUpjong(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoKosdaq) { queryUpjong(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스닥)); System.Threading.Thread.Sleep(3000 * 6); } }); if (!isAutoKospi && !isAutoKosdaq) { isRuning = false; } }
private void btnRealKr_Click(object sender, EventArgs e) { if (!isLogoned) { return; } btnRealKr.Enabled = false; bool isRealKospi = true; bool isRealKospi200 = true; bool isRealKosdaq = true; Task.Factory.StartNew(() => { if (isRealKospi) { Api.Api_IndexReal real = new Api_IndexReal(); real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스피)); System.Threading.Thread.Sleep(5000); } if (isRealKospi200) { Api.Api_IndexReal real = new Api_IndexReal(); real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스피200)); System.Threading.Thread.Sleep(5000); } if (isRealKosdaq) { Api.Api_IndexReal real = new Api_IndexReal(); real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스닥)); } }); }
private void btnKospi200F_Click(object sender, EventArgs e) { if (!isLogoned) { return; } queryKoreaIndexF(ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200)); }
private void btnLoadData_Click(object sender, EventArgs e) { string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , 120); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); List <S_CandleItemData> sourceDatas2 = new List <S_CandleItemData>(); List <T_MirrorItemData> transformedDatas = new List <T_MirrorItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } chartCS1.LoadData(itemCode, sourceDatas); foreach (var m in sourceDatas) { T_MirrorItemData tData = new T_MirrorItemData(m, sourceDatas); tData.Transform(); transformedDatas.Add(tData); } foreach (var m in transformedDatas) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , m.T_OpenPrice , m.T_HighPrice , m.T_LowPrice , m.T_ClosePrice , m.Volume , m.DTime ); sourceDatas2.Add(sourceData); } chartCS2.LoadData(itemCode, sourceDatas2); }
private void timer_Tick(object state) { if (isRuning) { return; } isRuning = true; if (isAutoKoreaIndex) { queryKoreaIndexR(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200)); System.Threading.Thread.Sleep(3000); } if (isAutoKoreaFuture) { queryKoreaIndexFR(ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200)); System.Threading.Thread.Sleep(3000); } if (isAutoFFGC) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_GOLD)); System.Threading.Thread.Sleep(3000); } if (isAutoFFNG) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_NG)); System.Threading.Thread.Sleep(3000); } if (isAutoFFSI) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_SILVER)); System.Threading.Thread.Sleep(3000); } if (isAutoFFCL) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI)); System.Threading.Thread.Sleep(3000); } if (isAutoFFNQ) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_나스닥)); System.Threading.Thread.Sleep(3000); } if (isAutoFFHSI) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_항셍)); System.Threading.Thread.Sleep(3000); } if (isAutoFFURO) { queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_유로FX)); System.Threading.Thread.Sleep(3000); } isRuning = false; }
private void Run(object o) { string itemCode = (string)o; string lastPrice = ""; LimitedList <double> ll3 = new LimitedList <double>(3); LimitedList <double> ll5 = new LimitedList <double>(5); LimitedList <double> ll7 = new LimitedList <double>(7); int rnd = ItemCodeSet.GetItemRoundNum(itemCode); while (true) { if (!SiseStorage.Instance.Prices.ContainsKey(itemCode)) { System.Threading.Thread.Sleep(1000); continue; } var priceQueue = SiseStorage.Instance.Prices[itemCode]; if (priceQueue.Count == 0) { System.Threading.Thread.Sleep(100); continue; } CurrentPrice price; var isDequeue = priceQueue.TryDequeue(out price); if (isDequeue) { if (lastPrice == price.price) { continue; } lastPrice = price.price; double d = Math.Round(Convert.ToDouble(lastPrice), rnd); ll3.Insert(d); ll5.Insert(d); ll7.Insert(d); price.price3 = ll3.Count == 3 ? Math.Round(ll3.Average(), rnd) : 0; price.price5 = ll3.Count == 5 ? Math.Round(ll5.Average(), rnd) : 0; price.price7 = ll3.Count == 7 ? Math.Round(ll7.Average(), rnd) : 0; SiseEvents.Instance.OnSiseHandler(itemCode, price); PPStorage.Instance.Add(itemCode, price.DTime, (Single)Math.Round(Convert.ToSingle(price.price), rnd)); if (isSiseBinding) { BindSise(itemCode, price); } } } }
private void btnLoadData_Click(object sender, EventArgs e) { string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , 120); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); List <T_AtomItemData> transformedDatas = new List <T_AtomItemData>(); List <T_QuantumItemData> transformedDatas2 = new List <T_QuantumItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } int itemsCnt = 7; for (int i = itemsCnt; i < sourceDatas.Count; i++) { T_AtomItemData transData = new T_AtomItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas.Add(transData); } chartAT1.LoadData(itemCode, transformedDatas); itemsCnt = 7; for (int i = itemsCnt; i < sourceDatas.Count; i++) { T_QuantumItemData transData = new T_QuantumItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas2.Add(transData); } chartQL1.LoadData(itemCode, transformedDatas2); }
public static double GetDownPriceOfTick(string itemCode, double p1, int tickNum) { double tick = ItemCodeSet.GetTick(itemCode); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); p1 = Math.Round(p1, round); double p2 = Math.Round((tick * tickNum), round); double newPrice = Math.Round(p1 - p2, round); return(newPrice); }
//Console.WriteLine(PriceTick.GetTickDiff("CL", 50.0, 55.0)); // Console.WriteLine(PriceTick.GetDownPriceOfRate("CL", 46.23, 6.64)); // Console.WriteLine(PriceTick.GetRate("CL", 46.23, 43.16)); // Console.WriteLine(PriceTick.GetDownPriceOfTick("CL", 50.0, 10)); // Console.WriteLine(PriceTick.GetUpPriceOfRatek("CL", 50.0, 10.0)); // Console.WriteLine(PriceTick.GetUpPriceOfTick("CL", 50.0, 10)); public static int GetTickDiff(string itemCode, double p1, double p2) { double tick = ItemCodeSet.GetTick(itemCode); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); p1 = Math.Round(p1, round); p2 = Math.Round(p2, round); double diff = Math.Round(Math.Abs(p1 - p2), round); return((int)(diff / tick)); }
private void btnLoadData_Click(object sender, EventArgs e) { string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , 120); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); List <T_QuarkItemData> transformedDatas = new List <T_QuarkItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } chartCS1.LoadData(itemCode, sourceDatas); DateTime?dtime = null; foreach (var m in sourceDatas.OrderByDescending(t => t.DTime)) { if (dtime != null && dtime.Value <= m.DTime) { continue; } T_QuarkItemData tData = new T_QuarkItemData(m, sourceDatas); tData.Transform(); transformedDatas.Add(tData); dtime = tData.DTimeS; } chartWX1.LoadData(itemCode, transformedDatas.OrderBy(t => t.DTime).ToList()); }
public void OrderBuySell(string itemCode, string position, string tradeType, string orderPrice, string quantity) { try { string IsuCodeVal = itemCode; if (IsuCodeVal.Length < 4) { IsuCodeVal = ItemCodeSet.GetItemSHCodeByCode(itemCode); } if (position == "매수") { position = "2"; } else if (position == "매도") { position = "1"; } if (tradeType == "시장가") { tradeType = "1"; } else if (tradeType == "지정가") { tradeType = "2"; } Api_WorldFutureTrade api = new Api_WorldFutureTrade(); api.Query( "" , DateTime.Now.ToString("yyyyMMdd") , WorldFutureAccountInfo.계좌번호 , WorldFutureAccountInfo.계좌비밀번호 , ItemCodeSet.GetItemSHCodeByCode(itemCode) , "1" , position , tradeType , orderPrice , orderPrice , quantity ); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }
private void BindData(int cnt, ReverseCandleChart chart) { string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , cnt); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); List <S_CandleItemData> reverseDatas = new List <S_CandleItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } for (int i = 0, j = sourceDatas.Count - 1; i < sourceDatas.Count; i++, j--) { S_CandleItemData reverseData = new S_CandleItemData( itemCode , sourceDatas[j].ClosePrice , sourceDatas[j].HighPrice , sourceDatas[j].LowPrice , sourceDatas[j].OpenPrice , 0 , sourceDatas[i].DTime ); reverseDatas.Add(reverseData); } chart.LoadData(itemCode, sourceDatas, reverseDatas); }
private void OrderAppForm_Load(object sender, EventArgs e) { tbItemK.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_국내_코스피200); tbItemGC.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD); tbItemNG.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG); tbItemSI.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER); tbItemCL.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI); tbItemNQ.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥); tbItemHSI.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍); OrderInstances.IndexFutureOrderInstance.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceCL.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceNG.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceHSI.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceNQ.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceGC.LogEvent += OrderInstance_LogEvent; OrderInstances.WorldFutureOrderInstanceSI.LogEvent += OrderInstance_LogEvent; }
private void btnReal_Click(object sender, EventArgs e) { if (!isLogoned) { return; } btnReal.Enabled = false; bool isRealCL = true; bool isRealNG = true; bool isRealGC = true; bool isRealSI = true; bool isRealHSI = true; bool isRealNQ = true; bool isRealURO = true; bool isRealES = true; Task.Factory.StartNew(() => { if (isRealCL) { Api.Api_WorldFutureReal realFFCL = new Api_WorldFutureReal(); realFFCL.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI), "CL"); System.Threading.Thread.Sleep(5000); } if (isRealNG) { Api.Api_WorldFutureReal realFFNG = new Api_WorldFutureReal(); realFFNG.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG), "NG"); System.Threading.Thread.Sleep(5000); } if (isRealGC) { Api.Api_WorldFutureReal realFFGC = new Api_WorldFutureReal(); realFFGC.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD), "GC"); System.Threading.Thread.Sleep(5000); } if (isRealSI) { Api.Api_WorldFutureReal realFFSI = new Api_WorldFutureReal(); realFFSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER), "SI"); System.Threading.Thread.Sleep(5000); } if (isRealHSI) { Api.Api_WorldFutureReal realFFHSI = new Api_WorldFutureReal(); realFFHSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍), "HMH"); System.Threading.Thread.Sleep(5000); } if (isRealNQ) { Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal(); realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥), "NQ"); System.Threading.Thread.Sleep(5000); } if (isRealURO) { Api.Api_WorldFutureReal realFFURO = new Api_WorldFutureReal(); realFFURO.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_유로FX), "URO"); } if (isRealES) { Api.Api_WorldFutureReal realFFES = new Api_WorldFutureReal(); realFFES.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SNP), "ES"); } }); }
private void timer_Tick(object state) { if (!isLogoned) { return; } if (isRuning) { return; } isRuning = true; Task.Factory.StartNew(() => { if (isAutoFFGC) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_GOLD)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFNG) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_NG)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFSI) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_SILVER)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFCL) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFNQ) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_나스닥)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFHSI) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_항셍)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFURO) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_유로FX)); System.Threading.Thread.Sleep(3000 * 6); } if (isAutoFFES) { queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_SNP)); System.Threading.Thread.Sleep(3000 * 6); } }); if (!isAutoFFGC && !isAutoFFNG && !isAutoFFSI && !isAutoFFCL && !isAutoFFNQ && !isAutoFFHSI && !isAutoFFURO && !isAutoFFES) { isRuning = false; } }
private void btnKospiSeparate_Click(object sender, EventArgs e) { if (!isLogoned) { return; } //string itemCode = ItemCodeSet.GetItemCode(ItemCode.선물_국내_코스피200); string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200); Button btn = sender as Button; Task.Factory.StartNew(() => { switch (btn.Text) { case "1분": apiIndex.Query(itemCode, "1", "1", "100"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "1", "100"); break; case "5분": apiIndex.Query(itemCode, "1", "5", "50"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "5", "50"); break; case "10분": apiIndex.Query(itemCode, "1", "10", "40"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "10", "40"); break; case "30분": apiIndex.Query(itemCode, "1", "30", "30"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "30", "30"); break; case "60분": apiIndex.Query(itemCode, "1", "60", "20"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "60", "20"); break; case "120분": apiIndex.Query(itemCode, "1", "120", "10"); System.Threading.Thread.Sleep(3000); apiIndexF.Query(itemCode, "1", "120", "10"); break; case "일": apiIndex.Query(itemCode, "2", "1", "2"); System.Threading.Thread.Sleep(3000); apiIndexFDWM.Query(itemCode, "2", "2"); break; case "주": apiIndex.Query(itemCode, "3", "1", "1"); System.Threading.Thread.Sleep(3000); apiIndexFDWM.Query(itemCode, "3", "1"); break; case "월": apiIndex.Query(itemCode, "4", "1", "1"); System.Threading.Thread.Sleep(3000); apiIndexFDWM.Query(itemCode, "4", "1"); break; } }); }
private void btnReal_Click(object sender, EventArgs e) { if (!isLogoned) { return; } btnReal.Enabled = false; bool isRealCL = chkRealCL.Checked; bool isRealNG = chkRealNG.Checked; bool isRealGC = chkRealGC.Checked; bool isRealSI = chkRealSI.Checked; bool isRealHSI = chkRealHSI.Checked; bool isRealNQ = chkRealNQ.Checked; bool isRealURO = chkRealURO.Checked; Task.Factory.StartNew(() => { Api.Api_IndexFutureReal realKF = new Api_IndexFutureReal(); realKF.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_국내_코스피200), "90199999"); System.Threading.Thread.Sleep(5000); if (isRealCL) { Api.Api_WorldFutureReal realFFCL = new Api_WorldFutureReal(); realFFCL.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI), "CL"); System.Threading.Thread.Sleep(5000); } if (isRealNG) { Api.Api_WorldFutureReal realFFNG = new Api_WorldFutureReal(); realFFNG.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG), "NG"); System.Threading.Thread.Sleep(5000); } if (isRealGC) { Api.Api_WorldFutureReal realFFGC = new Api_WorldFutureReal(); realFFGC.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD), "GC"); System.Threading.Thread.Sleep(5000); } if (isRealSI) { Api.Api_WorldFutureReal realFFSI = new Api_WorldFutureReal(); realFFSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER), "SI"); System.Threading.Thread.Sleep(5000); } if (isRealHSI) { Api.Api_WorldFutureReal realFFHSI = new Api_WorldFutureReal(); realFFHSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍), "HMH"); System.Threading.Thread.Sleep(5000); } if (isRealNQ) { Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal(); realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥), "NQ"); } if (isRealURO) { Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal(); realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_유로FX), "URO"); } }); }
private void btnLoadData_Click(object sender, EventArgs e) { string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , Lib.Base.Enums.TimeIntervalEnum.Day , null , tbDT_E.Text , 120); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); List <T_VelocityItemData> transformedDatas1 = new List <T_VelocityItemData>(); List <T_VelocityItemData> transformedDatas2 = new List <T_VelocityItemData>(); List <T_VelocityItemData> transformedDatas3 = new List <T_VelocityItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } int itemsCnt = 20; for (int i = itemsCnt; i < sourceDatas.Count; i++) { T_VelocityItemData transData = new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas1.Add(transData); } itemsCnt = 10; for (int i = itemsCnt; i < sourceDatas.Count; i++) { T_VelocityItemData transData = new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas2.Add(transData); } itemsCnt = 5; for (int i = itemsCnt; i < sourceDatas.Count; i++) { T_VelocityItemData transData = new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas3.Add(transData); } for (int i = 0; i < numericUpDown1.Value; i++) { transformedDatas1.Remove(transformedDatas1.Last()); transformedDatas2.Remove(transformedDatas2.Last()); transformedDatas3.Remove(transformedDatas3.Last()); } chartVL1.LoadData(itemCode, transformedDatas1); chartVL2.LoadData(itemCode, transformedDatas2); chartVL3.LoadData(itemCode, transformedDatas3); }
private void RunKr(object o) { string itemCode = (string)o; string lastPrice = ""; LimitedList <double> ll3 = new LimitedList <double>(3); LimitedList <double> ll5 = new LimitedList <double>(5); LimitedList <double> ll7 = new LimitedList <double>(7); int rnd = ItemCodeSet.GetItemRoundNum(itemCode); while (isRunKr) { try { if (!SiseStorage.Instance.PricesKr.ContainsKey(itemCode)) { System.Threading.Thread.Sleep(1000); continue; } var priceQueue = SiseStorage.Instance.PricesKr[itemCode]; if (priceQueue.Count == 0) { System.Threading.Thread.Sleep(100); continue; } CurrentPrice price; var isDequeue = priceQueue.TryDequeue(out price); if (isDequeue) { if (lastPrice == price.price) { continue; } lastPrice = price.price; double d = Math.Round(Convert.ToDouble(lastPrice), rnd); if (!ll3.Contains(d)) { ll3.Insert(d); } if (!ll5.Contains(d)) { ll5.Insert(d); } if (!ll7.Contains(d)) { ll7.Insert(d); } price.price3 = Math.Round(ll3.Average(), rnd); price.price5 = Math.Round(ll5.Average(), rnd); price.price7 = Math.Round(ll7.Average(), rnd); SiseEvents.Instance.OnSiseHandler(itemCode, price); if (isSiseBinding) { BindSise(itemCode, price); } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } }
public static int GetItemCodeRoundNum(string code) { int num = ItemCodeSet.GetItemRoundNum(code); return(num); }
private void btnLoadData_Click(object sender, EventArgs e) { TimeIntervalEnum timeInterval = TimeIntervalEnum.Day; if (radioButton1.Checked) { timeInterval = TimeIntervalEnum.Hour_01; } if (radioButton2.Checked) { timeInterval = TimeIntervalEnum.Hour_02; } if (radioButton3.Checked) { timeInterval = TimeIntervalEnum.Hour_03; } if (radioButton4.Checked) { timeInterval = TimeIntervalEnum.Day; } string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200); var list = PPContext.Instance.ClientContext.GetSourceData( itemCode , timeInterval , null , tbDT_E.Text , 300); int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode); List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>(); foreach (var m in list) { S_CandleItemData sourceData = new S_CandleItemData( itemCode , (Single)Math.Round(m.OpenVal, round) , (Single)Math.Round(m.HighVal, round) , (Single)Math.Round(m.LowVal, round) , (Single)Math.Round(m.CloseVal, round) , m.Volume , m.DT ); sourceDatas.Add(sourceData); } int itemsCnt = 7; List <T_AtomItemData> transformedDatas = new List <T_AtomItemData>(); for (int i = itemsCnt; i <= sourceDatas.Count; i++) { T_AtomItemData transData = new T_AtomItemData(sourceDatas[i - 1], sourceDatas.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas.Add(transData); } chartAT1.LoadData(itemCode, transformedDatas, timeInterval); List <S_CandleItemData> sourceDatas2 = new List <S_CandleItemData>(); itemsCnt = 7; for (int i = itemsCnt; i < sourceDatas.Count; i++) { S_CandleItemData transData = new S_CandleItemData(itemCode, sourceDatas.GetRange(i - itemsCnt, itemsCnt)); sourceDatas2.Add(transData); } itemsCnt = 7; List <T_AtomItemData> transformedDatas2 = new List <T_AtomItemData>(); for (int i = itemsCnt; i <= sourceDatas2.Count; i++) { T_AtomItemData transData = new T_AtomItemData(sourceDatas2[i - 1], sourceDatas2.GetRange(i - itemsCnt, itemsCnt)); transData.Transform(); transformedDatas2.Add(transData); } chartAT2.LoadData(itemCode, transformedDatas2, timeInterval); }
private void Chart_MouseMove(object sender, MouseEventArgs e) { //if (chart.Annotations.Count == 0) //{ // createXYLineAnnotation(); // createYXLineAnnotation(); //} HitTestResult result = chart.HitTest(e.X, e.Y); if (result.ChartArea == null) { return; } System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea = result.ChartArea; int minX = 0, minY = 0, maxX = 0, maxY = 0; minX = (int)chartArea.Position.X; maxX = (int)chartArea.Position.X + (int)(chartArea.Position.Width * chart.Width / 100); minY = (int)chartArea.Position.Y; maxY = (int)chartArea.Position.Y + (int)(chartArea.Position.Height * chart.Height / 100); if (e.Location.X < minX) { return; } if (e.Location.X > maxX - 50) { return; } //if (e.Location.Y < minY) return; //if (e.Location.Y > maxY - 20) return; var yv = chartArea.AxisY2.PixelPositionToValue(e.Y); if (Double.IsInfinity(yv) || Double.IsNaN(yv)) { return; } if (result.ChartArea.Name == "ca1") { yLines[0].AnchorY = yv; } else if (result.ChartArea.Name == "ca2") { yLines[1].AnchorY = yv; } else if (result.ChartArea.Name == "ca3") { yLines[2].AnchorY = yv; } else if (result.ChartArea.Name == "ca4") { yLines[3].AnchorY = yv; } else if (result.ChartArea.Name == "ca5") { yLines[4].AnchorY = yv; } else if (result.ChartArea.Name == "ca6") { yLines[5].AnchorY = yv; } else { yLines[0].AnchorY = yv; } yLineLabel.Visible = true; yLineLabel.Location = new Point(minX, e.Location.Y); yLineLabel.Text = Math.Round(yv, ItemCodeSet.GetItemRoundNum(ItemCode)).ToString(); var xv = chartArea.AxisX.PixelPositionToValue(e.X); if (Double.IsInfinity(xv) || Double.IsNaN(xv)) { return; } xLineLabel.Location = new Point(e.Location.X - 10, maxY - 20); if (result.PointIndex > -1) { var dtime = DateTime.FromOADate(result.Series.Points[result.PointIndex].XValue); xLineLabel.Text = dtime.ToString(chartArea.AxisX.LabelStyle.Format); xLineLabel.Visible = true; } else { xLineLabel.Visible = false; } foreach (var xLine in xLines) { xLine.AnchorX = xv; } }