掘金社区

gm_td_open_long 回测时 生效 bug?Pinned highlighted

。。。 发表在掘金2 2016-05-08 04:51:44

掘金2
906
5
0

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <time.h>
#include <iostream>
#include "strategy.h"

using namespace std;

int g_count = 0;

//处理逐笔行情事件
void on_tick(Tick *tick)
{

	int ret;
	//if(g_count % 10 == 0)
	cout &lt;&lt; &#34;symbol: &#34; &lt;&lt; tick-&gt;sec_id &lt;&lt; &#34; price: &#34; &lt;&lt; tick-&gt;last_price &lt;&lt; &#34; count:&#34; &lt;&lt; g_count &lt;&lt;&#34; time:&#34;&lt;<tick->strtime&lt;<endl; order="" o;="" ret="gm_td_open_long(tick-">exchange, tick-&gt;sec_id, tick-&gt;last_price, 100,&amp;o);

		if (ret == 0)
		{
			cout &lt;&lt; &#34;开多: &#34; &lt;&lt; o.cl_ord_id &lt;&lt; endl;
			cout &lt;&lt; &#34;strategy: &#34; &lt;&lt; o.strategy_id &lt;&lt; endl;
			cout &lt;&lt; &#34;symbol:&#34; &lt;&lt; o.sec_id &lt;&lt; endl;
			cout &lt;&lt; &#34;price:&#34; &lt;&lt; o.price &lt;&lt; endl;
			cout &lt;&lt; &#34;volume:&#34; &lt;&lt; o.volume &lt;&lt; endl;
		}
		else
			cout &lt;&lt; &#34;error code: &#34; &lt;&lt; ret &lt;&lt; endl;

}

//处理分时行情事件
void on_bar(Bar *bar)
{
	cout &lt;&lt; &#34;symbol: &#34; &lt;&lt; bar-&gt;sec_id &lt;&lt; &#34; price: &#34; &lt;&lt; bar-&gt;close &lt;&lt; endl;
}

//处理委托回报事件
void on_execrpt(ExecRpt *res)
{
	cout &lt;&lt; &#34;成交回报: &#34; &lt;&lt; endl;
	cout &lt;&lt; &#34;strategy: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; endl;
	cout &lt;&lt; &#34;symbol:&#34; &lt;&lt; res-&gt;sec_id &lt;&lt; endl;
	cout &lt;&lt; &#34;price:&#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
	cout &lt;&lt; &#34;volume:&#34; &lt;&lt; res-&gt;volume &lt;&lt; endl;
}

/**
* 委托回报函数类型(回调接口: 订单接受)
*
*/
void on_order_new(Order *res)
{
	cout &lt;&lt; &#34;order_new: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}

/**
* 委托回报函数类型(回调接口:订单完全成交)
*
*/
void on_order_filled(Order *res)
{
	cout &lt;&lt; &#34;order_filled: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}

/**
* 委托回报函数类型(回调接口:订单部分成交)
*
*/
void on_order_partiall_filled(Order *res)
{
	cout &lt;&lt; &#34;order_partiall_filled: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}

/**
* 委托回报函数类型(回调接口:订单停止)
*
*/
void on_order_stop_executed(Order *res)
{
	cout &lt;&lt; &#34;order_stop_executed: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}


/**
* 委托回报函数类型(回调接口:订单撤销成功)
*
*/
void on_order_canceled(Order *res)
{
	cout &lt;&lt; &#34;order_canceled: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}

/**
* 委托回报函数类型(回调接口:撤单失败)
*
*/
void on_order_cancel_rejected(ExecRpt *res)
{
	cout &lt;&lt; &#34;order_cancel_rejected: &#34; &lt;&lt; res-&gt;strategy_id &lt;&lt; &#34;  &#34; &lt;&lt; res-&gt;price &lt;&lt; endl;
}

void  on_error(int ec, const char *lp)
{
	printf(&#34;on_error code: %d ,msg: %s

", ec, lp);
//gm_logout();
}

int main(int argc, char *[])
{
	int ret;

	//初始化策略,根据配置文件
	ret = strategy_init_with_config(&#34;test_strategy.ini&#34;);

	if (ret)
	{
		printf(&#34;init got error: %d

", ret);
system("pause");
return ret;
}

	// 设置事件回调函数
	gm_td_set_execrpt_callback(on_execrpt);
	gm_td_set_order_cancelled_callback(on_order_canceled);
	gm_td_set_order_cancel_rejected_callback(on_order_cancel_rejected);
	gm_td_set_order_filled_callback(on_order_filled);
	gm_td_set_order_new_callback(on_order_new);
	gm_td_set_order_partially_filled_callback(on_order_partiall_filled);
	gm_td_set_order_stop_executed_callback(on_order_stop_executed);
	gm_td_set_error_callback(on_error);

	gm_md_set_tick_callback(on_tick);
	gm_md_set_bar_callback(on_bar);
	gm_md_set_error_callback(on_error);

	printf(&#34;策略起动成功! %s

", gm_strerror(ret));

	// 执行并等待策略运行结束
	ret = gm_run();

	if (ret)
	{
		cout &lt;&lt; &#34;error:&#34; &lt;&lt; ret &lt;&lt; &#34; msg:&#34; &lt;&lt; gm_strerror(ret) &lt;&lt; endl;
		getchar();
	}

	return 0;
}

开发环境win10 64位+vs2015 与这个有关么.纠结了几天了</endl;></tick-></iostream></time.h></string.h></string></stdlib.h></stdio.h>

评论: 5

Looks like your connection to 掘金量化社区 - 量化交易者的策略交流学习社区 was lost, please wait while we try to reconnect.