Browse Source

回测改动

master
lizhixin 4 years ago
parent
commit
3c170ec730
  1. 5
      package-lock.json
  2. 3
      package.json
  3. 38
      src/pages/ReCheck/MoveTrend.vue
  4. 45
      src/pages/ReCheck/index.vue
  5. 1
      src/utils/plugin/axios-plugin.js

5
package-lock.json

@ -5449,6 +5449,11 @@
"schema-utils": "^2.5.0"
}
},
"file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-2.0.5.tgz",
"integrity": "sha1-1hz+LOBZ9BTYmendbUEH7iVnDDg="
},
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz",

3
package.json

@ -13,15 +13,16 @@
"lint-fix": "vue-cli-service lint --fix"
},
"dependencies": {
"axios": "^0.19.0",
"chart.js": "^2.9.3",
"core-js": "^3.6.5",
"echarts": "^5.0.2",
"element-ui": "^2.15.1",
"file-saver": "^2.0.5",
"jquery": "^3.6.0",
"moment": "^2.29.1",
"papaparse": "^5.3.0",
"register-service-worker": "^1.7.1",
"axios": "^0.19.0",
"uuidv1": "^1.6.14",
"vue": "^2.6.11",
"vue-chartjs": "^3.5.0",

38
src/pages/ReCheck/MoveTrend.vue

@ -5,6 +5,32 @@
placeholder="现有资金"
v-model="form.NowCapital"
></base-input> -->
<base-radio
v-for="oM in orderModes"
:key="oM.value"
inline
:name="oM.value"
class="mb-3"
v-model="form.OrderAmountType"
>
{{ oM.name }}
</base-radio>
<div class="row">
<div class="col-md-6">
<base-input
label="总资金"
placeholder="总资金"
v-model="form.NowCapital"
></base-input>
</div>
<div class="col-md-6">
<base-input
label="固定下单金额"
placeholder="固定下单金额"
v-model="form.TradeAmount"
></base-input>
</div>
</div>
<base-input
label="总资金"
placeholder="总资金"
@ -25,9 +51,13 @@
<base-checkbox inline v-model="form.IsEnabledLimit">
是否启用限价单
</base-checkbox>
<base-checkbox inline v-model="form.IsV2">
是否启用动量趋势2.0
</base-checkbox>
</div>
</template>
<script>
import BaseRadio from "../../components/BaseRadio";
export default {
model: { prop: "form", event: "formChange" },
props: {
@ -36,13 +66,19 @@ export default {
default: () => {}
}
},
components: { BaseRadio },
watch: {
form() {
this.$emit("formChange", this.form);
}
},
data() {
return {};
return {
orderModes: [
{ value: 0, name: "灵活百分比" },
{ value: 1, name: "固定金额" }
]
};
},
computed: {
total() {

45
src/pages/ReCheck/index.vue

@ -4,7 +4,9 @@
<div class="col-md-6">
<div class="row">
<div class="col-md-3">
<base-button @click="excelImport">导入数据源</base-button>
<base-button @click="excelImport" :loading="excelLoading"
>导入数据源</base-button
>
</div>
<div class="col-md-4">
<base-input>
@ -189,13 +191,16 @@
</custom-base-table>
</div>
</el-tab-pane>
<el-tab-pane name="3" :label="`${item.Symbol}绩效总结`">
<el-tab-pane
:name="`${item.Symbol}绩效总结`"
:label="`${item.Symbol}绩效总结`"
>
<account-info v-model="item.accountInfo" />
</el-tab-pane> </el-tabs
></card>
</el-tab-pane>
<!-- 绩效总结 -->
<el-tab-pane name="3" label="总绩效总结">
<el-tab-pane name="总绩效总结" label="总绩效总结">
<account-info v-model="accountInfo" />
</el-tab-pane>
</el-tabs>
@ -205,6 +210,7 @@
<script>
/* eslint-disable */
import { tradeColumns, logColumns } from "../prePages/js/columns";
import { saveAs } from "file-saver";
import Excel from "../../utils/ExcelUtils";
import KLine from "../../oldComponents/EchartTable/kLine";
// import HQKline from "../../oldComponents/EchartTable/hqKline";
@ -242,19 +248,23 @@ export default {
secToMin,
LogTypes,
spinning: false,
excelLoading: false,
lineSelect: "",
tradeColumns,
logColumns,
logData: [],
PositionFund: 1,
RobotPolicyType,
policyMode: 0,
policyMode: 2,
tradeData: [],
trendForm: {
NowCapital: 10000,
FrozenProfit: 12,
TradeAmountRatio: 50,
IsEnabledLimit: false
IsEnabledLimit: false,
IsV2: false,
OrderAmountType: 0,
TradeAmount: 10000
},
excuting: false,
startTime: null,
@ -354,11 +364,12 @@ export default {
let that = this;
this.spinning = true;
this.excelLoading = true;
this.excelTabsData = [];
Excel.importExcel(data => {
that.spinning = false;
this.excelLoading = false;
if (data && data[0]) {
this.lineSelect = data[0].name; //modelName
data.forEach(element => {
let result = [];
let sIndex = element.name.indexOf("_") + 1;
@ -369,10 +380,12 @@ export default {
this.excelTabsData.push({
Symbol: cutName,
KLineDataList: temp.postData,
accountInfo: {}
accountInfo: {},
data: element.data
});
//K线
if (element.name == data[0].name) {
this.lineSelect = cutName; //modelName
result = this.splitData(temp.kLineData); //data
this.kLineData = result;
}
@ -730,11 +743,27 @@ export default {
executeTrendTest() {
if (this.trendForm && this.kLineDataList.length > 0) {
this.excuting = true;
let newExcelData = JSON.parse(JSON.stringify(this.excelTabsData));
newExcelData.forEach(element => {
delete element.data;
delete element.accountInfo;
});
// -start
// let content = JSON.stringify({
// Capital: this.trendForm,
// IsEnabledLimit: this.trendForm.IsEnabledLimit,
// SymbolList: newExcelData
// });
// var blob = new Blob([content], { type: "text/plain;charset=utf-8" });
// saveAs(blob, "request.txt");
// -end
this.$http
.post("/Api/Simulation/MomentumTrendTest", {
Capital: this.trendForm,
IsEnabledLimit: this.trendForm.IsEnabledLimit,
SymbolList: this.excelTabsData
IsV2: this.trendForm.IsV2,
SymbolList: newExcelData
})
.then(res => {
this.excuting = false;

1
src/utils/plugin/axios-plugin.js

@ -15,6 +15,7 @@ Axios.interceptors.request.use(
// config.headers.Authorization = 'Bearer ' + TokenCache.getToken()
// }
config.headers["Content-Type"] = "application/json";
// config.headers["Access-Control-Allow-Origin"] = "*";
return config;
},
error => {

Loading…
Cancel
Save