Today's the day

向软件大牛炫耀我会焊单片机,向硬件大牛炫耀我会写 Rails,向软硬件大牛炫耀我生物,向软硬件生物大牛炫耀我会折腾期货 -_-bbb

推特的影响力

暂时告别 .net 版的 Multicharts

galeki posted @ 2013年5月28日 02:41 in 交易 with tags multicharts , 6560 阅读

去年 Multicharts 发布了 .net 版,第一时间就买了 License,本想给交易程序弄点好玩的功能,但是到最后还是没有时间搞,还是老样子用 Easylanguage 版本继续跑。

当初买 .net 版的原因还有一个,就是因为 Multicharts 的 License 只能同时运行一个,而我的自动交易又是放在 VPS 上的,这样如果在交易日我有什么想法想在本地测试一下,就非常麻烦。所以当时的想法就是,趁着 .net 版的发布,买一个专门用来本地测试。

结果这几个月最大的感受,就是 C# 实在是不适合拿来测试自己的想法,原因就是 ---- 写起来太累了。

再次粘贴一下同一个程序 Easylanguage 和 C# 版本的对比:

Easylanguage:

input: Price( High ), Length( 20 ) ;
 
Buy 1 share next bar at Highest( Price, Length ) + 1 point stop;

C#:

using System;
using PowerLanguage.Function;
 
namespace PowerLanguage.Strategy
{
    public class Channel_Breakout_LE : SignalObject
    {
        private ISeries<Double> m_price;
 
        private int m_length = 20;
 
        private HighestFC m_highestfc;
 
        private IOrderPriced m_Order;
 
        public Channel_Breakout_LE(object ctx) :
            base(ctx) {}
 
        private ISeries<Double> price{
            get { return m_price; }
        }
 
        [Input]
        public int length{
            get { return m_length; }
            set { m_length = value; }
        }
 
        protected override void Create(){
            m_highestfc = new HighestFC(this);
            m_Order = OrderCreator.Stop(new SOrderParameters(Contracts.Default, "ChBrkLE", EOrderAction.Buy));
        }
 
        protected override void StartCalc(){
            m_price = Bars.High;
            m_highestfc.pricevalue = price;
            m_highestfc.len = new Lambda<Int32>(delegate { return length; });
        }
 
 
        protected override void CalcBar(){
            m_Order.Send((m_highestfc[0]
                               + (1*Bars.Point)));
        }
    }
}

每次有个想法开始着手写 C# 版本的代码,等我把那些对象啊类啊初始化好,我都已经忘了想法是什么了……

想画一条线还得去新建个对象,然后初始化才能用,好麻烦啊。

再加上有些实用的 Easylanguage 函数并没有移植过来,还得自己重新写。

再加上因为代码增多造成的各种 bug,比如类型转换错误呐,声明错误呐……

总之用 C# 测试自己的想法就是个杯具。

 

于是只好用回 Easylanguage 版,但是又不想再去买第二个 License,也不放心用 .net 版去自动交易,所以一段时间以来测试都留在非交易日的周末去做,不过最近周末总是不在家,测试工作也就越来越懈怠。

上个周末反省了一下觉得这样不行,最后还是下定决心再买个 License,先去官方查了查购买第二个 License 有没有优惠政策,结果看到了这个:

真是相见恨晚,于是就这样把 .net 的 License 给转到 Easylanguage,这样问题就解决了,不过也就暂时跟 .net 版告别了,以后有时间再去做好玩的东西吧~

 

话说本文并不是黑 .net 版本的 Multicharts 哦,用起来还是很不错的,如果某一天需要用到一些底层功能或是第三方库,还是非 .net 莫属,只不过不适合拿来测试自己的想法而已。

  • 无匹配
我爱开封 说:
2013年11月12日 20:40

你好啊,我想问一下你的自动交易系统年利润能实现百分之多少?

Avatar_small
galeki 说:
2013年11月14日 16:10

这要看承受的风险和行情,年 20%~30% 不难达到~

我爱开封 说:
2013年11月14日 19:23

那你只用自己的资金跑这个系统吗?

Avatar_small
galeki 说:
2013年11月16日 03:51

是的,勉强做到够生计 -_-b

我爱开封 说:
2013年11月20日 10:28

既然你是稳定的系统,可以上currensee和汇通网啊,让别人跟踪你的系统,然后收费。国内的雷凯期货也提供50万资金,你可以再设计个国内的期货交易系统。

Avatar_small
galeki 说:
2013年11月23日 19:34

哈哈,稳定不稳定其实我也不知道。
不过如果真是稳定的系统,那自然要留着自己用,收益肯定超过收费,而且用的人越多失效得越快;如果不是稳定的系统,让别人跟踪也是害人。所以不管从哪方面考虑都用不着卖系统。

我爱开封 说:
2013年11月24日 10:15

雷凯期货是模拟——实盘这样晋级的,等于他们找操盘手帮他们赚钱然后给你一些分成,你的系统还是你自己用。最高可以操作2000万的资金。真的不心动么?0.0

Avatar_small
galeki 说:
2013年11月26日 01:04

就我这20%的收益铁定倒着数了,而且就算费劲千辛万苦名列前茅也只是可以操作那些资金还要有压力。可能以后会考虑吧,现在虽然赚得不多但是轻松愉快呐 (╯▽╰)╭

shaou 说:
2014年4月03日 23:46

相比easylanguage,C#有一个非常强大的地方,就是你不仅可以用交易市场内的数据,还可以用交易市场以外的数据,比如天气、温度、PMI、PPP等等你能在互联网上获取到的任何数据。将市场内数据和市场外数据关联起来,当然前提是发现了关联性。
如果仅仅是使用交易市场内数据,easylanguage可能更简单清晰。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter