请教QuantDeveloper跳过周末和划线问题

Discussion in 'QuantDeveloper' started by Charley, Mar 19, 2010.

  1. 开始建立基于QuantDeveloper的交易平台。遇到两个问题,画出的K-线没有跳过周末(留出了空白)。另外,想在上面画一条线,但出现Exception. 不知道哪位能帮忙解决这两个问题。多谢了。代码如下:

    string stockName ="SPY";
    Canvas mCanvas = new Canvas("IndicatorCanvas", stockName, 1200, 600);
    mCanvas.AddPad(0, 0, 1, 1);

    Instrument ins = InstrumentManager.Instruments[stockName];
    DailySeries Series = DataManager.GetDailySeries(ins);
    Series.Draw("C");

    float x1 = 10;
    float y1 = 10;
    float x2 = 20;
    float y2 = 20;
    Pen pen = new Pen(Color.Red);

    Pad.DrawLine(pen, x1, y1, x2, y2);

    最后一行出现的Exception 如下:
    System.ArgumentException: Parameter is not valid.
    at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
    at System.Drawing.Graphics.DrawLine(Pen pen, Int32 x1, Int32 y1, Int32 x2, Int32 y2)
    at SmartQuant.Charting.Pad.DrawLine(Pen Pen, Double X1, Double Y1, Double X2, Double Y2, Boolean DoTransform)
    at SmartQuant.Charting.Pad.DrawLine(Pen Pen, Double X1, Double Y1, Double X2, Double Y2)
     
  2. 我没有用过QD,请哪位朋友抽空帮忙看一下。
     
  3. chart/Canvas无法跳过周末和日内的午盘休市空白,试着使用finchart类来做图。划线的问题不清楚。
     
  4. Tom: 多谢!多谢!我去试试FinChart.
     
  5. FinChart 的Chart 和Pad 的概念好像和Canvas/Pad很不一样,搞了半天也没有显示出Candle Chart. Tom: 你能帮忙发一段FinChart的Example吗?多谢!多谢!

    另外,划线的文题我解决了,用的是: 
    TLine line = new TLine(date1, y1, date2, y2);
    line.Draw();

     
  6. 有邮件吗,我发给你
     
  7. 对不起,上个礼拜出差,今天才看到你的帖子。我的邮件是cguo43@gmail.com 多谢!
     
  8. Gmail 打开太慢了,发在这里吧

    Code:
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    using System.Collections.Generic;
    using SmartQuant.FinChart;
    using SmartQuant.Data;
    using SmartQuant.Instruments;
    using SmartQuant.Series;
    using SmartQuant.Providers;
    using SmartQuant.Indicators;
    
    
    public class StartUp
    {
    
        static Form formchart = new Form();
        static void Main(string[] args)
        {
            // TO DO: Add your code here
            Instrument currInstrument = InstrumentManager.Instruments["600714.SH"];
            showChart(currInstrument);
    
        
            Application.Run(formchart);
        }
    
        static void showChart(Instrument instrument1)
        {
        
            formchart.Text = instrument1.Symbol;
    
            Chart chart = new Chart();
    
            formchart.Controls.Add(chart);
    
    
            DailySeries dailys = instrument1.GetDailySeries();
            dailys.ChartStyle = ChartStyle.Line;
            chart.Dock = DockStyle.Fill;
             
           chart.Reset();
    
            chart.SetMainSeries(dailys, true );
    
            SMA  sma_fast=new  SMA  (dailys,5,BarData.Close);
            SMA sma_slow = new SMA(dailys, 20, BarData.Close);
         
            sma_fast.Color = Color.Yellow;
            sma_slow.Color = Color.Red;
    
            chart.DrawSeries(sma_fast, 0, System.Drawing.Color.White );
            chart.DrawSeries(sma_slow, 0, System.Drawing.Color.White );
            formchart.Controls.Add(chart);
        }
    
        
    }