订阅信号的时候,要在常用选项里面全部勾选,另外订阅信号和取消订阅的时候会有延迟,需要耐心等待
#property show_inputs
void OnStart() {
// 取消当前订阅的信号
SignalUnsubscribe();
// 获得信号总数
int total = SignalBaseTotal();
for(int i=total-1; i >= 0; i--) {
if(SignalBaseSelect(i) == true) {
// 信号的id, 名称, 售价, 交易次数
int id = SignalBaseGetInteger(SIGNAL_BASE_ID);
string name = SignalBaseGetString(SIGNAL_BASE_NAME);
double price = SignalBaseGetDouble(SIGNAL_BASE_PRICE);
int trade = SignalBaseGetInteger(SIGNAL_BASE_TRADES);
if(price == 0 && trade > 0) {
// 订阅之前的准备工作
SignalInfoSetInteger(SIGNAL_INFO_TERMS_AGREE, 1);
SignalInfoSetInteger(SIGNAL_INFO_SUBSCRIPTION_ENABLED, 1);
SignalInfoSetInteger(SIGNAL_INFO_COPY_SLTP, 1);
SignalInfoSetInteger(SIGNAL_INFO_CONFIRMATIONS_DISABLED, 1);
SignalInfoSetInteger(SIGNAL_INFO_DEPOSIT_PERCENT, 20);
SignalInfoSetDouble(SIGNAL_INFO_EQUITY_LIMIT, 4500);
SignalInfoSetDouble(SIGNAL_INFO_SLIPPAGE, 1.5);
// 订阅信号
if(SignalSubscribe(id) == false) {
Print(GetLastError());
} else {
Print("success");
}
break;
}
}
}
}