兩個問題不一樣
1/. 一天開五次單 用時間或是K數做限制 再加一個計次的方法限制
if(bar!=bar)
{
bar=bar;
k=0;
}
if(k<5)
if(開單條件)
{
if(開單)
k++;
}
以上沒做測試 只提供建議參考
2/. 訂單發出去就到交易服務器 是不能攔截的
既然要攔截為何不一開始就不要發出去 確定滿足開單條件後再發訂單
我的需求是控制日内开单的次数。 手动开单,ea风控。ea解决下单上头的问题
例如,一天开单五次以后就不能开单了。
如果再开一个新的单子
用OnTradeTransaction()函数
执行五次,分别是
//1 TRADE_TRANSACTION_ORDER_ADD order #163851050 ORDER_TYPE_BUY ORDER_STATE_STARTED
//2 TRADE_TRANSACTION_ORDER_DELETE order #163851050 ORDER_TYPE_BUY ORDER_STATE_FILLED
//3 TRADE_TRANSACTION_HISTORY_ADD order #163851050 ORDER_TYPE_BUY BTCUSD ORDER_STATE_FILLED
//4 TRADE_TRANSACTION_DEAL_ADD deal #115800919 DEAL_TYPE_BUY BTCUSD 0.03 lot
//5 TRADE_TRANSACTION_REQUEST
有没有可能在第一步, TRADE_TRANSACTION_ORDER_ADD 新增订单的时候就把订单拦截下来。
试了在这一步增加条件判断之后,用Trade.OrderDelete(lastOrderID); 不能执行。显示invalid request。
求大神赐教。
只要可以满足需求就可以。不一定在那一步就拦截订单。有别的什么好的取消订单、拦截订单的方法都可以。
谢谢
1/.EA只能控制EA開的單
你的方案 除非用的是半自動EA 手動觸發EA開單 這樣才能透過EA來控制單量
當然 你另外手動再介入開單的話 EA仍控制不了你先開的單
2/. 你的動作沒說明清楚 可以是有持倉EA就自動馬上平倉
交易的動作是 1.下開單指令 2.平台接受指定 3.平台進行交易 4.平台回覆交易結果(交易成功返回單號 交易失敗返回代碼)
這個一來一往都要時間的 要看你跟平台的連接速度
如果你想做毫秒級以上的極速交易 需要另外找VPS
OnTradeTransaction()函数是交易完后,如果交易在onticke,是整个onticke运行完后才到这个 OnTradeTransaction(),所以无法拦截
你要控制下单量不是很简单么,获取当前订单量,然后小于5再开就好了。
我的需求是控制日内开单的次数。 手动开单,ea风控。ea解决下单上头的问题
例如,一天开单五次以后就不能开单了。
如果再开一个新的单子
用OnTradeTransaction()函数
执行五次,分别是
//1 TRADE_TRANSACTION_ORDER_ADD order #163851050 ORDER_TYPE_BUY ORDER_STATE_STARTED
//2 TRADE_TRANSACTION_ORDER_DELETE order #163851050 ORDER_TYPE_BUY ORDER_STATE_FILLED
//3 TRADE_TRANSACTION_HISTORY_ADD order #163851050 ORDER_TYPE_BUY BTCUSD ORDER_STATE_FILLED
//4 TRADE_TRANSACTION_DEAL_ADD deal #115800919 DEAL_TYPE_BUY BTCUSD 0.03 lot
//5 TRADE_TRANSACTION_REQUEST
有没有可能在第一步, TRADE_TRANSACTION_ORDER_ADD 新增订单的时候就把订单拦截下来。
试了在这一步增加条件判断之后,用Trade.OrderDelete(lastOrderID); 不能执行。显示invalid request。
求大神赐教。
只要可以满足需求就可以。不一定在那一步就拦截订单。有别的什么好的取消订单、拦截订单的方法都可以。
谢谢