146 lines
4.5 KiB
C#
146 lines
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using MySql.Data.MySqlClient;
|
|
using System.Collections;
|
|
using System.Reflection;
|
|
|
|
namespace upper_limit_crawler
|
|
{
|
|
//struct ITEM
|
|
//{
|
|
// string m_strCode;
|
|
// DateTime m_Time;
|
|
// int m_iCurPrice;
|
|
// int m_iAskCount;
|
|
// int m_iBidCount;
|
|
// int m_iStartPrice;
|
|
// int m_iTradingVolume;
|
|
// float m_fRatePerStart;
|
|
//}
|
|
|
|
public partial class MainForm : Form
|
|
{
|
|
ArrayList m_TraceList = new ArrayList();
|
|
|
|
Timer m_MainTimer = new Timer();
|
|
int m_iLastTime = 0;
|
|
|
|
static ULDataMgr m_DataMgr = new ULDataMgr();
|
|
ULMonitor m_Monitor = new ULMonitor(m_DataMgr);
|
|
ULWatch m_Watch = new ULWatch(m_DataMgr);
|
|
ULDealing m_Dealing = new ULDealing(m_DataMgr);
|
|
ULOwn m_Own = new ULOwn(m_DataMgr);
|
|
|
|
public MainForm()
|
|
{
|
|
InitializeComponent();
|
|
|
|
m_DataMgr.m_Setting.m_fSearchMin = float.Parse(tbSearchMin.Text);
|
|
m_DataMgr.m_Setting.m_fSearchMax = float.Parse(tbSearchMax.Text);
|
|
m_DataMgr.m_Setting.m_fBidMin = float.Parse(tbBidMin.Text);
|
|
m_DataMgr.m_Setting.m_fBidMax = float.Parse(tbBidMax.Text);
|
|
m_DataMgr.m_Setting.m_fBidAmount = float.Parse(tbBidAmount.Text);
|
|
m_DataMgr.m_Setting.m_fTimeout = float.Parse(tbTimeout.Text);
|
|
m_DataMgr.m_Setting.m_fTrailing = float.Parse(tbTrailing.Text);
|
|
m_DataMgr.m_Setting.m_fLossCut = float.Parse(tbLossCut.Text);
|
|
|
|
|
|
SetDoubleBuffered(lvWatch);
|
|
|
|
m_Monitor.SetView(lvWatch);
|
|
|
|
m_MainTimer.Interval = 10;
|
|
m_MainTimer.Tick += Refresh;
|
|
m_MainTimer.Start();
|
|
}
|
|
|
|
public static void SetDoubleBuffered(Control control)
|
|
{
|
|
// set instance non-public property with name "DoubleBuffered" to true
|
|
typeof(Control).InvokeMember("DoubleBuffered",
|
|
BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
|
|
null, control, new object[] { true });
|
|
}
|
|
|
|
private bool IsOnTime()
|
|
{
|
|
DateTime CurTime = DateTime.Now;
|
|
if (CurTime.DayOfWeek == DayOfWeek.Sunday || CurTime.DayOfWeek == DayOfWeek.Saturday)
|
|
return false;
|
|
|
|
if (CurTime.Hour < 8 || CurTime.Hour > 15)
|
|
return false;
|
|
|
|
if (CurTime.Hour == 8 && CurTime.Minute < 50)
|
|
return false;
|
|
|
|
if (CurTime.Hour == 15 && CurTime.Minute > 15)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
private void Refresh(object sender, EventArgs e)
|
|
{
|
|
//if(IsOnTime() == false)
|
|
// return;
|
|
|
|
int iCurTime = Environment.TickCount;
|
|
int iDeltaT = iCurTime - m_iLastTime;
|
|
|
|
m_Monitor.Refresh(iCurTime);
|
|
m_Watch.Refresh(iCurTime);
|
|
m_Dealing.Refresh(iCurTime);
|
|
m_Own.Refresh(iCurTime);
|
|
|
|
m_iLastTime = iCurTime;
|
|
}
|
|
|
|
private void AddTrace(string strCode)
|
|
{
|
|
if (m_TraceList.Contains(strCode) == true)
|
|
return;
|
|
|
|
m_TraceList.Add(strCode);
|
|
}
|
|
|
|
private void btApply_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
m_DataMgr.m_Setting.m_fSearchMin = float.Parse(tbSearchMin.Text);
|
|
m_DataMgr.m_Setting.m_fSearchMax = float.Parse(tbSearchMax.Text);
|
|
m_DataMgr.m_Setting.m_fBidMin = float.Parse(tbBidMin.Text);
|
|
m_DataMgr.m_Setting.m_fBidMax = float.Parse(tbBidMax.Text);
|
|
m_DataMgr.m_Setting.m_fBidAmount = float.Parse(tbBidAmount.Text);
|
|
m_DataMgr.m_Setting.m_fTimeout = float.Parse(tbTimeout.Text);
|
|
m_DataMgr.m_Setting.m_fTrailing = float.Parse(tbTrailing.Text);
|
|
m_DataMgr.m_Setting.m_fLossCut = float.Parse(tbLossCut.Text);
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
UlUtil.Trace(ex.ToString());
|
|
}
|
|
}
|
|
|
|
private void btCancel_Click(object sender, EventArgs e)
|
|
{
|
|
tbSearchMin.Text = m_DataMgr.m_Setting.m_fSearchMin.ToString("0.0");
|
|
tbSearchMax.Text = m_DataMgr.m_Setting.m_fSearchMax.ToString("0.0");
|
|
tbBidMin.Text = m_DataMgr.m_Setting.m_fBidMin.ToString("0.0");
|
|
tbBidMax.Text = m_DataMgr.m_Setting.m_fBidMax.ToString("0.0");
|
|
tbBidAmount.Text = m_DataMgr.m_Setting.m_fBidAmount.ToString("###,###,###,###,###");
|
|
tbTimeout.Text = m_DataMgr.m_Setting.m_fTimeout.ToString("0.###");
|
|
tbTrailing.Text = m_DataMgr.m_Setting.m_fTrailing.ToString("0.0");
|
|
tbLossCut.Text = m_DataMgr.m_Setting.m_fLossCut.ToString("0.0");
|
|
}
|
|
}
|
|
}
|