|
|
@@ -87,6 +87,8 @@ MTAPIRES CPluginInstance::Stop()
|
|
|
m_api = nullptr;
|
|
|
m_enable = false;
|
|
|
|
|
|
+ stop_redis();
|
|
|
+
|
|
|
if (m_work_thread.joinable())
|
|
|
m_work_thread.join();
|
|
|
|
|
|
@@ -134,8 +136,8 @@ void CPluginInstance::OnOrderDelete(const IMTOrder * order)
|
|
|
if (!m_enable) return;
|
|
|
if (order->Login() != m_trader) return;
|
|
|
|
|
|
- //m_api->LoggerOut(MTLogOK, L"OnOrderDelete, login: %lld, ord: %lld, pos: %lld, state: %d, vol_init: %lld, vol_cur: %lld",
|
|
|
- // order->Login(), order->Order(), order->PositionID(), order->State(), order->VolumeInitial(), order->VolumeCurrent());
|
|
|
+ m_api->LoggerOut(MTLogOK, L"OnOrderDelete, login: %lld, ord: %lld, pos: %lld, state: %d, vol_init: %lld, vol_cur: %lld",
|
|
|
+ order->Login(), order->Order(), order->PositionID(), order->State(), order->VolumeInitial(), order->VolumeCurrent());
|
|
|
|
|
|
if (order->Type() != IMTOrder::OP_BUY
|
|
|
&& order->Type() != IMTOrder::OP_SELL)
|
|
|
@@ -289,14 +291,13 @@ void CPluginInstance::OnOrderDelete(const IMTOrder * order)
|
|
|
MTAPIRES ret = m_api->OrderAdd(new_order);
|
|
|
if (ret != MT_RET_OK)
|
|
|
{
|
|
|
- m_api->LoggerOut(MTLogErr, L"%lld failed to add order, original order #%lld [%d]", login, order->Login(), ret);
|
|
|
+ m_api->LoggerOut(MTLogErr, L"%lld failed to add order, original order #%lld [%d]", login, order->Order(), ret);
|
|
|
// FIXME: 如果做单失败该怎么办
|
|
|
continue;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- new_order_id = new_order->Order();
|
|
|
- }
|
|
|
+
|
|
|
+ new_order_id = new_order->Order();
|
|
|
+ m_api->LoggerOut(MTLogOK, L"%lld add order #%lld, original order #%lld [%d]", login, new_order_id, order->Order());
|
|
|
|
|
|
// 完成之后,写入新纪录
|
|
|
context.cur_ord = new_order_id;
|
|
|
@@ -413,6 +414,8 @@ void CPluginInstance::OnDealPerform(const IMTDeal * deal, IMTAccount * account,
|
|
|
m_redis_client->sync_commit();
|
|
|
auto reply = fut.get();
|
|
|
|
|
|
+ m_api->LoggerOut(MTLogOK, L"%lld add deal, original deal #%lld", login, deal->Deal());
|
|
|
+
|
|
|
// 如果不存在,忽略
|
|
|
if (reply.ko()) continue;
|
|
|
if (reply.is_null()) continue;
|
|
|
@@ -455,7 +458,9 @@ void CPluginInstance::OnDealPerform(const IMTDeal * deal, IMTAccount * account,
|
|
|
// TODO: 有没有更多的错误处理?
|
|
|
m_api->LoggerOut(MTLogErr, L"%lld cannot add deal [%d], original deal: #%lld", login, ret, deal->Deal());
|
|
|
continue;
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ m_api->LoggerOut(MTLogOK, L"add deal #%lld, original deal #%lld [%d]", new_deal->Deal(), deal->Deal());
|
|
|
|
|
|
if (position->Volume() == 0)
|
|
|
{
|
|
|
@@ -511,6 +516,8 @@ MTAPIRES CPluginInstance::LoadParam()
|
|
|
});
|
|
|
std::lock_guard<decltype(m_lock)> lk(m_lock);
|
|
|
|
|
|
+ //m_api->LoggerOut(MTLogOK, L"Load redis server params");
|
|
|
+
|
|
|
if ((res = m_config->ParameterGet(L"Redis Server", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_STRING)
|
|
|
{
|
|
|
return(MT_RET_ERR_PARAMS);
|
|
|
@@ -557,6 +564,8 @@ MTAPIRES CPluginInstance::LoadParam()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //m_api->LoggerOut(MTLogOK, L"Load trade params");
|
|
|
+
|
|
|
if ((res = m_config->ParameterGet(L"Trader", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_INT)
|
|
|
{
|
|
|
return(MT_RET_ERR_PARAMS);
|
|
|
@@ -576,16 +585,22 @@ MTAPIRES CPluginInstance::LoadParam()
|
|
|
{
|
|
|
return(MT_RET_ERR_PARAMS);
|
|
|
}
|
|
|
- m_groups = param->ValueString();
|
|
|
+ wcsncpy(m_groups, param->ValueString(), 1024);
|
|
|
//if ((res = m_config->ParameterGet(L"Logins", param)) != MT_RET_OK || param->Type() != IMTConParam::TYPE_STRING)
|
|
|
//{
|
|
|
// return(MT_RET_ERR_PARAMS);
|
|
|
//}
|
|
|
//m_logins = param->ValueString();
|
|
|
|
|
|
+
|
|
|
res = LoadLogins();
|
|
|
if (res != MT_RET_OK)
|
|
|
+ {
|
|
|
+ m_api->LoggerOut(MTLogErr, L"failed to load clients [%d]", res);
|
|
|
return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ //m_api->LoggerOut(MTLogOK, L"Load param success");
|
|
|
|
|
|
m_enable = true;
|
|
|
|
|
|
@@ -611,6 +626,9 @@ MTAPIRES CPluginInstance::LoadLogins()
|
|
|
{
|
|
|
ret = m_api->GroupNext(i, group);
|
|
|
if (ret != MT_RET_OK) break;
|
|
|
+ if (CheckGroup(m_groups, group->Group()) == FALSE) continue;
|
|
|
+
|
|
|
+ m_api->LoggerOut(MTLogOK, L"group %s matched config", group->Group());
|
|
|
groups.push_back(group->Group());
|
|
|
}
|
|
|
|
|
|
@@ -618,11 +636,14 @@ MTAPIRES CPluginInstance::LoadLogins()
|
|
|
{
|
|
|
UINT64* logins = nullptr;
|
|
|
UINT total_users = 0;
|
|
|
+
|
|
|
ret = m_api->UserLogins(group.c_str(), logins, total_users);
|
|
|
- if (ret = MT_RET_OK)
|
|
|
+ m_api->LoggerOut(MTLogOK, L"add group %s, total users: %d", group.c_str(), total_users);
|
|
|
+ if (ret == MT_RET_OK && logins != nullptr)
|
|
|
{
|
|
|
for (int i = 0; i < total_users; ++i)
|
|
|
{
|
|
|
+ m_api->LoggerOut(MTLogOK, L"add %d to list", logins[i]);
|
|
|
m_followers.push_back(logins[i]);
|
|
|
}
|
|
|
}
|