Browse Source

平生不做亏心事夜半敲门也不经

master
lizhixin 4 years ago
parent
commit
63b658888c
  1. 5
      src/components/MovementPolicyForm.vue
  2. 11
      src/layout/dashboard/DashboardLayout.vue
  3. 7
      src/pages/Account/index.vue
  4. 18
      src/pages/ReCheck/OrderTable.vue
  5. 31
      src/pages/ReCheck/index.vue
  6. 2
      src/pages/prePages/ReCheck.vue
  7. 31
      src/utils/util.js

5
src/components/MovementPolicyForm.vue

@ -380,7 +380,8 @@ export default {
// lowest_label_display: this.lowest_label_display
// });
// },
myForm() {
myForm(newVal, oldVal) {
console.log(newVal, oldVal);
this.form = this.myForm;
}
},
@ -394,7 +395,7 @@ export default {
periodSignal,
signals,
orderModes,
form: {},
form: this.myForm,
NotifyType: 5,
ClosePrice: 0
};

11
src/layout/dashboard/DashboardLayout.vue

@ -33,18 +33,17 @@
<el-menu-item index="2-3" @click="to('/robot/1')"
>机器人管理</el-menu-item
>
<el-menu-item index="2-2" @click="to('/capital')">
总资金管理</el-menu-item
>
</el-submenu>
<el-menu-item index="3" @click="to('/reCheck')">
<i class="el-icon-bicycle"></i>
<span slot="title">回测</span>
</el-menu-item>
<el-menu-item index="4" @click="to('/winRate')">
<i class="el-icon-aim"></i>
<span slot="title">短线胜率测试</span>
</el-menu-item>
<el-menu-item index="5" @click="to('/capital')">
<el-menu-item index="5" @click="to('/reCheck')">
<i class="el-icon-trophy"></i>
<span slot="title">总资金管理</span>
<span slot="title">回测</span>
</el-menu-item>
</el-menu>
<!-- <template slot="links">

7
src/pages/Account/index.vue

@ -16,6 +16,13 @@
<small>新建账号</small>
</div>
<form role="form">
<!-- 账号名称-->
<!-- <base-input
label="账号名称"
placeholder="请填写账号名称"
v-model="form.Name"
>
</base-input> -->
<!-- 账号AccessKey -->
<base-input
label="账号AccessKey"

18
src/pages/ReCheck/OrderTable.vue

@ -13,11 +13,12 @@
<!-- 买卖时间 -->
<template slot="KLineId" slot-scope="item">
<p>
{{ item.row.item.PurchaseKLineId
?
moment(item.row.item.PurchaseKLineId * 1000).format(
"YYYY-MM-DD HH:mm:ss"
) : "-"
{{
item.row.item.PurchaseKLineId
? moment(item.row.item.PurchaseKLineId * 1000).format(
"YYYY-MM-DD HH:mm:ss"
)
: "-"
}}
</p>
<p>
@ -64,7 +65,7 @@
<p v-if="item.row.item.TotalProfit">
{{
(
(item.row.item.TotalProfit / policyFormData.PositionFund) *
(item.row.item.TotalProfit / item.row.item.TotalPurchasePrice) *
100
).toFixed(2)
}}%
@ -81,7 +82,10 @@ import { tradeColumns } from "../../pages/prePages/js/columns";
import moment from "moment";
export default {
model: { prop: "data", event: "tableDataChange" },
props: { data: { type: Array, default: () => [] }, policyFormData: {} },
props: {
data: { type: Array, default: () => [] },
positionFund: { type: Number, default: 1 }
},
components: { CustomBaseTable },
data() {
return { moment, columns: tradeColumns };

31
src/pages/ReCheck/index.vue

@ -36,6 +36,7 @@
style="width:200px"
placeholder="策略选择"
v-model="policyMode"
@change="policyModeChange"
>
<el-option
v-for="item in RobotPolicyType"
@ -120,7 +121,7 @@
<KLine :data="kLineData" :keyFilter="keyFilter" />
<!-- <HQKline /> -->
</el-tab-pane>
<el-tab-pane name="2" label="编策略">
<el-tab-pane name="2" label="编策略">
<movement-policy-form
v-if="policyMode == 0"
v-model="policyFormData"
@ -139,7 +140,7 @@
<el-tab-pane name="1" label="交易清单">
<order-table
v-model="tradeData"
:policyFormData="policyFormData"
:positionFund="PositionFund"
></order-table>
</el-tab-pane>
@ -205,6 +206,7 @@ import moment from "moment";
import OrderTable from "./OrderTable";
import CustomBaseTable from "../../components/CustomBaseTable.vue";
import MoveTrend from "./MoveTrend";
import { deepClone } from "../../utils/util";
// import TopEndPolicy from "../components/TopEndPolicy.vue";
export default {
components: {
@ -229,6 +231,7 @@ export default {
tradeColumns,
logColumns,
logData: [],
PositionFund: 1,
RobotPolicyType,
policyMode: 0,
tradeData: [],
@ -242,7 +245,7 @@ export default {
endTime: null,
kLineData: {},
keyFilter: {},
policyFormData: {},
policyFormData: { ...ResetMomentumWaveTest },
kLineDataList: [],
dateRange: [],
accountInfo: {},
@ -253,9 +256,19 @@ export default {
};
},
mounted() {
this.policyFormData = ResetMomentumWaveTest;
this.PositionFund = this.policyFormData.PositionFund;
},
methods: {
policyModeChange(value) {
console.log(value);
if (value == 2) {
this.PositionFund =
(this.trendForm.NowCapital - this.trendForm.FrozenProfit) /
(this.trendForm.TradeAmountRatio / 100);
} else if (value == 0) {
this.PositionFund = this.policyFormData.PositionFund;
}
},
onOk(value) {
this.logShowCondition = item =>
moment(item.CreateTime).isBetween(moment(value[0]), moment(value[1]));
@ -470,15 +483,15 @@ export default {
this.startTime &&
this.endTime &&
!moment(data[i][j] * 1000).isBetween(
this.startTime.startOf("day"),
this.endTime.endOf("day")
moment(this.startTime).startOf("day"),
moment(this.endTime).endOf("day")
)
) {
break;
} else if (
this.startTime &&
!moment(data[i][j] * 1000).isAfter(
this.startTime.startOf("day")
moment(this.startTime).startOf("day")
)
) {
break;
@ -738,8 +751,8 @@ export default {
.post("/Api/Simulation/MomentumTrendTest", {
Capital: {
...this.trendForm,
FrozenProfit: this.trendForm.FrozenProfit / 100,
TradeAmountRatio: this.trendForm.TradeAmountRatio / 100
FrozenProfit: this.trendForm.FrozenProfit,
TradeAmountRatio: this.trendForm.TradeAmountRatio
},
kLineDataList: this.kLineDataList
})

2
src/pages/prePages/ReCheck.vue

@ -80,7 +80,7 @@
<KLine :data="kLineData" :keyFilter="keyFilter" />
<!-- <HQKline /> -->
</a-tab-pane>
<a-tab-pane key="2" tab="编策略">
<a-tab-pane key="2" tab="编策略">
<MomentumWavePolicy v-if="policyMode == 0" v-model="policyFormData" />
<top-end-policy v-else v-model="policyFormData" />
</a-tab-pane>

31
src/utils/util.js

@ -0,0 +1,31 @@
//深拷贝
function deepClone(newObj, oldObj) {
for (let i in oldObj) {
let item = oldObj[i];
if (item instanceof Array) {
newObj[i] = [];
deepClone(newObj[i], item);
} else if (item instanceof Object) {
newObj[i] = {};
deepClone(newObj[i], item);
} else {
newObj[i] = item;
}
// console.log(newObj, "深拷贝的每一步", i, oldObj);
}
}
//节流函数
function debounce(fn, delay) {
var timer = null;
return function() {
if (!timer) {
timer = setTimeout(fn, delay);
} else {
clearTimeout(timer);
timer = setTimeout(fn, delay);
}
};
}
export { deepClone, debounce };
Loading…
Cancel
Save