1、策略下单
This commit is contained in:
@ -396,6 +396,14 @@
|
|||||||
<template v-if="inForm.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template>
|
<template v-if="inForm.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss">
|
||||||
|
<el-input
|
||||||
|
v-model="inForm.stop_loss"
|
||||||
|
min="0"
|
||||||
|
type="number"
|
||||||
|
:placeholder="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
||||||
<el-input v-model="inForm.profit_num_ratio" placeholder="止盈数量百分比" />
|
<el-input v-model="inForm.profit_num_ratio" placeholder="止盈数量百分比" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -481,14 +489,6 @@
|
|||||||
<el-radio label="0">直接执行</el-radio>
|
<el-radio label="0">直接执行</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss">
|
|
||||||
<el-input
|
|
||||||
v-model="inForm.stop_loss"
|
|
||||||
min="0"
|
|
||||||
type="number"
|
|
||||||
:placeholder="inForm.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="减仓策略">
|
<el-form-item label="减仓策略">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="inForm.reduce_strategy_id"
|
v-model="inForm.reduce_strategy_id"
|
||||||
@ -821,6 +821,8 @@ export default {
|
|||||||
],
|
],
|
||||||
profit: [{ required: true, message: '请输入', trigger: 'blur' },
|
profit: [{ required: true, message: '请输入', trigger: 'blur' },
|
||||||
{ validator: this.validateProfit, trigger: 'blur' }],
|
{ validator: this.validateProfit, trigger: 'blur' }],
|
||||||
|
|
||||||
|
stop_loss: [{ required: true, message: '请输入止损', trigger: 'blur' }, { validator: this.validateStopLoss, trigger: 'blur' }],
|
||||||
reduce_price: [
|
reduce_price: [
|
||||||
{ required: true, message: '主单亏损不能为空', trigger: 'blur' },
|
{ required: true, message: '主单亏损不能为空', trigger: 'blur' },
|
||||||
{ validator: this.validateReducePrice, trigger: 'blur' }],
|
{ validator: this.validateReducePrice, trigger: 'blur' }],
|
||||||
@ -968,6 +970,16 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/** 主单止损价 */
|
||||||
|
validateStopLoss(rule, value, callback) {
|
||||||
|
if (value < 0) {
|
||||||
|
callback(new Error('止损价不能小于0'))
|
||||||
|
} else if (this.form.price_pattern !== 'mixture' && value > 100) {
|
||||||
|
callback(new Error('止损价不能大于100'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
validatePercentage(rule, value, callback) {
|
validatePercentage(rule, value, callback) {
|
||||||
if (value <= 0 || value === undefined || value === null || value === '') {
|
if (value <= 0 || value === undefined || value === null || value === '') {
|
||||||
callback(new Error('百分比必须大于0'))
|
callback(new Error('百分比必须大于0'))
|
||||||
|
|||||||
@ -505,11 +505,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="策略类型">
|
<el-form-item label="策略类型">
|
||||||
<el-radio-group v-model="form.strategy_template_type" @input="changeStrategyTemplateType">
|
<el-radio-group v-model="form.strategy_template_type" @input="changeStrategyTemplateType">
|
||||||
|
<!-- :disabled="item.value === 1" -->
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="(item, index) in strategyTemplateTypeOptions"
|
v-for="(item, index) in strategyTemplateTypeOptions"
|
||||||
:key="'strategyTemplateType' + index"
|
:key="'strategyTemplateType' + index"
|
||||||
:label="item.value"
|
:label="item.value"
|
||||||
:disabled="item.value === 1"
|
|
||||||
>{{ item.label }}</el-radio>
|
>{{ item.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -597,6 +597,14 @@
|
|||||||
<template v-if="form.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template>
|
<template v-if="form.price_pattern === 'mixture'" slot="append">{{ comTakePrice }}</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="form.price_pattern === 'mixture' ? '止损价格' : '止损百分比'" prop="stop_loss">
|
||||||
|
<el-input
|
||||||
|
v-model="form.stop_loss"
|
||||||
|
min="0"
|
||||||
|
type="number"
|
||||||
|
:placeholder="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
<el-form-item label="止盈数量百分比" prop="profit_num_ratio">
|
||||||
<el-input v-model="form.profit_num_ratio" placeholder="止盈数量百分比" />
|
<el-input v-model="form.profit_num_ratio" placeholder="止盈数量百分比" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -634,14 +642,6 @@
|
|||||||
<el-radio label="0">直接执行</el-radio>
|
<el-radio label="0">直接执行</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'" prop="stop_loss">
|
|
||||||
<el-input
|
|
||||||
v-model="form.stop_loss"
|
|
||||||
min="0"
|
|
||||||
type="number"
|
|
||||||
:placeholder="form.price_pattern === 'mixture' ? '止损价格' : '止损价百分比'"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="减仓策略">
|
<el-form-item label="减仓策略">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.reduce_strategy_id"
|
v-model="form.reduce_strategy_id"
|
||||||
|
|||||||
@ -152,7 +152,7 @@
|
|||||||
:gutter="20"
|
:gutter="20"
|
||||||
>
|
>
|
||||||
<!-- <el-card shadow="hover"> -->
|
<!-- <el-card shadow="hover"> -->
|
||||||
<el-col :span="7">
|
<el-col :span="6">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="亏损比例"
|
label="亏损比例"
|
||||||
:prop="'items.' + index + '.lossPercent'"
|
:prop="'items.' + index + '.lossPercent'"
|
||||||
@ -161,7 +161,12 @@
|
|||||||
<el-input v-model="item.lossPercent" size="mini" placeholder="请输入亏损比例" />
|
<el-input v-model="item.lossPercent" size="mini" placeholder="请输入亏损比例" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="6">
|
||||||
|
<el-form-item label="减仓比例" :prop="'items.' + index + '.quantityPercent'" :rules="rules.quantityPercent">
|
||||||
|
<el-input v-model="item.quantityPercent" size="mini" placeholder="请输入减仓数量比例" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="订单类型"
|
label="订单类型"
|
||||||
:prop="'items.' + index + '.orderType'"
|
:prop="'items.' + index + '.orderType'"
|
||||||
@ -259,6 +264,9 @@ export default {
|
|||||||
lossPercent: [{ required: true, message: '亏损百分比不能为空', trigger: 'blur' },
|
lossPercent: [{ required: true, message: '亏损百分比不能为空', trigger: 'blur' },
|
||||||
{ validator: this.validateOrderType, trigger: 'blur' }],
|
{ validator: this.validateOrderType, trigger: 'blur' }],
|
||||||
orderType: [{ required: true, message: '订单类型不能为空', trigger: 'blur' }
|
orderType: [{ required: true, message: '订单类型不能为空', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
quantityPercent: [{ required: true, message: '减仓数量百分比不能为空', trigger: 'blur' },
|
||||||
|
{ validator: this.validateQuantityPercent, trigger: 'blur' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -286,6 +294,21 @@ export default {
|
|||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
validateQuantityPercent(rule, value, callback) {
|
||||||
|
// const index = rule.fullField.split('.')[1] // 获取索引
|
||||||
|
|
||||||
|
if (value === '') {
|
||||||
|
callback(new Error('不能为空'))
|
||||||
|
} else if (isNaN(value)) {
|
||||||
|
callback(new Error('必须输入数字'))
|
||||||
|
} else if (value < 0) {
|
||||||
|
callback(new Error('百分比不能小于 0'))
|
||||||
|
} else if (value > 100) {
|
||||||
|
callback(new Error('百分比不能大于 100'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
},
|
||||||
/** 查询参数列表 */
|
/** 查询参数列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|||||||
@ -19,6 +19,11 @@
|
|||||||
align="center"
|
align="center"
|
||||||
prop="reducePremium"
|
prop="reducePremium"
|
||||||
/>
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="减仓策略提前触发百分比"
|
||||||
|
align="center"
|
||||||
|
prop="reduceEarlyTriggerPercent"
|
||||||
|
/>
|
||||||
<!-- <el-table-column
|
<!-- <el-table-column
|
||||||
label="主账号加仓溢价百分比"
|
label="主账号加仓溢价百分比"
|
||||||
align="center"
|
align="center"
|
||||||
@ -143,6 +148,9 @@
|
|||||||
<el-form-item label="限价减仓溢价" prop="reducePremium">
|
<el-form-item label="限价减仓溢价" prop="reducePremium">
|
||||||
<el-input v-model="form.reducePremium" placeholder="限价减仓溢价" />
|
<el-input v-model="form.reducePremium" placeholder="限价减仓溢价" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="减仓策略提前触发百分比" prop="reduceEarlyTriggerPercent">
|
||||||
|
<el-input v-model="form.reduceEarlyTriggerPercent" placeholder="减仓策略提前触发百分比" />
|
||||||
|
</el-form-item>
|
||||||
<!-- <el-form-item label="主账号加仓溢价百分比" prop="scaleOrderTypeARate">
|
<!-- <el-form-item label="主账号加仓溢价百分比" prop="scaleOrderTypeARate">
|
||||||
<el-input v-model="form.scaleOrderTypeARate" placeholder="主账号限价加仓买入百分比" />
|
<el-input v-model="form.scaleOrderTypeARate" placeholder="主账号限价加仓买入百分比" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -221,7 +229,8 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
stopLossPremium: [{ required: true, message: '限价止损溢价不能为空', trigger: 'blur' }],
|
stopLossPremium: [{ required: true, message: '限价止损溢价不能为空', trigger: 'blur' }],
|
||||||
addPositionPremium: [{ required: true, message: '限价加仓溢价不能为空', trigger: 'blur' }],
|
addPositionPremium: [{ required: true, message: '限价加仓溢价不能为空', trigger: 'blur' }],
|
||||||
reducePremium: [{ required: true, message: '限价减仓溢价不能为空', trigger: 'blur' }]
|
reducePremium: [{ required: true, message: '限价减仓溢价不能为空', trigger: 'blur' }],
|
||||||
|
reduceEarlyTriggerPercent: [{ required: true, message: '减仓策略提前触发百分比不能为空', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user