Switch demo trading to 5m short-term swing setups (plan 3.1)

- The model now submits a pending setup (direction, zone, confirm price,
  validity); the executor enters at market once a 5m close confirms a
  dip into support or a rejection from resistance, and cancels the setup
  when the zone breaks, the trigger is missed or the stop is too far
- Stop beyond the confirmation extreme by 0.5 x ATR14(5m), skipped above
  1%; fixed take-profit ladders from the fill price (long 60/30/10 at
  +0.5/0.75/1%, short 80/20 at -0.5/0.75%); 4h time stop
- While holding, the model may only keep or exit
- Drop the long-term angle from the program, API, tables and page
This commit is contained in:
eezd committed 2026-10-15 13:09:19 +08:00
1 parent 1fcf41952c
commit 7efa2eb68b
12 files changed
+696 -746

No files matched your search

@@ -1,12 +1,11 @@
<script lang="ts" setup>
import type { Angle, SymbolOption } from "@/apis/trading"
import { addSymbol, ANGLE_LABELS, listSymbolOptions } from "@/apis/trading"
import type { SymbolOption } from "@/apis/trading"
import { addSymbol, listSymbolOptions } from "@/apis/trading"
const emit = defineEmits<{ added: [symbol: string] }>()
const visible = defineModel<boolean>({ required: true })
const symbol = ref("")
const angle = ref<Angle>("long")
const symbolOptions = ref<SymbolOption[]>([])
const loading = ref(false)
const submitting = ref(false)
@@ -28,7 +27,7 @@ watch(visible, async (open) => {
async function submit() {
submitting.value = true
try {
await addSymbol(symbol.value, angle.value)
await addSymbol(symbol.value)
ElMessage.success(`已加入 ${symbol.value}`)
emit("added", symbol.value)
visible.value = false
@@ -50,13 +49,6 @@ async function submit() {
只列出模拟盘和实盘都在交易的加密货币 USDT 永续合约
</div>
</el-form-item>
<el-form-item label="角度">
<el-radio-group v-model="angle">
<el-radio v-for="(label, value) in ANGLE_LABELS" :key="value" :value="value">
{{ label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="visible = false">