public void GetStockDataDetailData(ClassCSV cCSV, string strDateTarg, string placeTarg, string racenumTarg) { //データ取得する _form1.axJVLink1.JVClose(); if (cCommon.checkInit() != 0) { return; } if (GetStockDataDetailData1(strDateTarg, placeTarg, racenumTarg) < 0) { _form1.axJVLink1.JVClose(); return; } _form1.prgDownload.Value = 51; _form1.prgDownload.Value--; //計算する cCommon.CreateCompositeOdds(cCSV, listUmatanOddsH1, listUmatanOddsO1, listUmatanOdds, listOddsSanrentan); _form1.prgDownload.Maximum++; _form1.prgDownload.Value = _form1.prgDownload.Maximum; _form1.prgDownload.Maximum--; }
public UmatanOdds(clsCommon cCommon, OperateForm cOperateForm1, Form1 form1) { _form1 = form1; cOperateForm = cOperateForm1; cLog = new ClassLog(); cUmatanOddsRT = new UmatanOddsRT(cCommon, form1); cUmatanOddsStock = new UmatanOddsStock(cCommon, form1); cCSV = new ClassCSV(); }
bool GetRTDataDetailData1(ClassCSV cCSV, string strDateTarg, string placeTarg, string racenumTarg) { string codeJyo; string retbuff; codeJyo = cCommon.JyogyakuCord(placeTarg); if (codeJyo == "") { return(false); } //速報オッズ(馬単)の呼び出し retbuff = GeJVRTRead(strDateTarg, codeJyo, racenumTarg, "0B34", 4100); if (retbuff == null) { return(false); } listUmatanOdds = cCommon.setDataO4(retbuff, strDateTarg, placeTarg, racenumTarg); //速報オッズ(単複枠)の呼び出し retbuff = GeJVRTRead(strDateTarg, codeJyo, racenumTarg, "0B31", 1000); if (retbuff == null) { return(false); } listUmatanOddsO1 = cCommon.setDataO1(retbuff, strDateTarg, placeTarg, racenumTarg); //3連単オッズの呼び出し retbuff = GeJVRTRead(strDateTarg, codeJyo, racenumTarg, "0B36", 110000); if (retbuff == null) { return(false); } listOddsSanrentan = cCommon.setDataO6(retbuff, strDateTarg, placeTarg, racenumTarg); //速報票数(全賭式)の呼び出し retbuff = GeJVRTRead(strDateTarg, codeJyo, racenumTarg, "0B20", 30000); if (retbuff != null) { listUmatanOddsH1 = cCommon.setDataH1(retbuff, strDateTarg, placeTarg, racenumTarg); } return(true); }
void writeHeadData(ClassCSV cCSV) { long rowTarget = 1; cCSV.setData(rowTarget, 1, "目1"); cCSV.setData(rowTarget, 2, "目2"); cCSV.setData(rowTarget, 3, "馬単オッズ"); cCSV.setData(rowTarget, 4, "人気1"); cCSV.setData(rowTarget, 5, "人気2"); cCSV.setData(rowTarget, 6, "馬単票数"); cCSV.setData(rowTarget, 7, "馬単裏"); cCSV.setData(rowTarget, 8, "馬単合成"); cCSV.setData(rowTarget, 9, "3連単1・2着軸総流し"); }
public void CreateCompositeOdds(ClassCSV cCSV, List <clsUmatanOdds> listUmatanOddsH1, List <clsRaceUma> listUmatanOddsO1, List <clsUmatanOdds> listUmatanOdds, List <clsOddsSanrentan> listOddsSanrentan) { int cnt = 0; bool isExistHyou = true; // 人気順を入れる foreach (clsRaceUma UmatanOddsO1 in listUmatanOddsO1) { cnt = 0; foreach (clsUmatanOdds UmatanOdds in listUmatanOdds) { if (UmatanOdds.Umaban1 == UmatanOddsO1.Umaban) { listUmatanOdds[cnt].Ninki1 = UmatanOddsO1.Ninki; } if (UmatanOdds.Umaban2 == UmatanOddsO1.Umaban) { listUmatanOdds[cnt].Ninki2 = UmatanOddsO1.Ninki; } cnt++; } } // 票数1 if (listUmatanOddsH1.Count == 0) { isExistHyou = false; } foreach (clsUmatanOdds UmatanOddsH1 in listUmatanOddsH1) { cnt = 0; foreach (clsUmatanOdds UmatanOdds in listUmatanOdds) { if (UmatanOdds.Kumi == UmatanOddsH1.Kumi) { listUmatanOdds[cnt].Hyou = UmatanOddsH1.Hyou; break; } cnt++; } } // 馬単裏 for (int i = 0; i < listUmatanOdds.Count; i++) { foreach (clsUmatanOdds UmatanOdds in listUmatanOdds) { if (listUmatanOdds[i].Umaban1 == UmatanOdds.Umaban2 && listUmatanOdds[i].Umaban2 == UmatanOdds.Umaban1) { listUmatanOdds[i].RevOdds = UmatanOdds.Odds; break; } } } // 馬単合成 for (int i = 0; i < listUmatanOdds.Count; i++) { List <double> listOddsGousei = new List <double>(); listOddsGousei.Add(listUmatanOdds[i].Odds); listOddsGousei.Add(listUmatanOdds[i].RevOdds); double denom = 0; for (int j = 0; j < listOddsGousei.Count; j++) { denom += 1 / listOddsGousei[j]; } if (denom > 0) { listUmatanOdds[i].SyntheticOdds1 = 1 / denom; } } // 3連単オッズ if (_form1.checkBox1.Checked) { for (int i = 0; i < listUmatanOdds.Count; i++) { List <double> listOddsGousei = new List <double>(); for (int j = 0; j < listOddsSanrentan.Count; j++) { if (listUmatanOdds[i].Umaban1 == listOddsSanrentan[j].Umaban1 && listUmatanOdds[i].Umaban2 == listOddsSanrentan[j].Umaban2) { listOddsGousei.Add(listOddsSanrentan[j].OddsSanrentan); } } double denom = 0; for (int j = 0; j < listOddsGousei.Count; j++) { if (listOddsGousei[j] > 0) { denom += 1 / listOddsGousei[j]; } } if (denom > 0) { listUmatanOdds[i].SyntheticOdds2 = 1 / denom; } } } //ソートする listUmatanOdds.Sort((a, b) => b.Umaban1 - a.Umaban1); listUmatanOdds.Sort((a, b) => b.Umaban2 - a.Umaban2); listUmatanOdds.Sort((a, b) => a.OddsInt - b.OddsInt); //CSVに書き込み long rowWrite = 2; foreach (clsUmatanOdds UmatanOdds in listUmatanOdds) { string strOdds = string.Format("{0:0.0}", UmatanOdds.Odds); if (strOdds.Substring(strOdds.Length - 1, 1) == "0") { strOdds = ((int)UmatanOdds.Odds).ToString(); } string strRevOdds = string.Format("{0:0.0}", UmatanOdds.RevOdds); if (strRevOdds.Substring(strRevOdds.Length - 1, 1) == "0") { strRevOdds = ((int)UmatanOdds.RevOdds).ToString(); } string strSyntheticOdds1 = string.Format("{0:0.0}", UmatanOdds.SyntheticOdds1); if (strSyntheticOdds1.Substring(strSyntheticOdds1.Length - 1, 1) == "0") { strSyntheticOdds1 = Convert.ToInt32(UmatanOdds.SyntheticOdds1).ToString(); } cCSV.setData(rowWrite, 1, UmatanOdds.Umaban1.ToString()); cCSV.setData(rowWrite, 2, UmatanOdds.Umaban2.ToString()); cCSV.setData(rowWrite, 3, strOdds); cCSV.setData(rowWrite, 4, UmatanOdds.Ninki1.ToString()); cCSV.setData(rowWrite, 5, UmatanOdds.Ninki2.ToString()); if (isExistHyou) { cCSV.setData(rowWrite, 6, UmatanOdds.Hyou.ToString()); } else { cCSV.setData(rowWrite, 6, ""); } cCSV.setData(rowWrite, 7, strRevOdds); cCSV.setData(rowWrite, 8, strSyntheticOdds1); if (_form1.checkBox1.Checked) { string strSyntheticOdds2 = string.Format("{0:0.0}", UmatanOdds.SyntheticOdds2); if (strSyntheticOdds2.Substring(strSyntheticOdds2.Length - 1, 1) == "0") { strSyntheticOdds2 = Convert.ToInt32(UmatanOdds.SyntheticOdds2).ToString(); } cCSV.setData(rowWrite, 9, strSyntheticOdds2); } rowWrite++; } }