From 95fd55e5608dca1aa5d57995a842ecde6dcd246f Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 4 May 2024 21:05:12 -0400 Subject: [PATCH] more diagonal work (unfinished) --- src/charts/shape.js | 24 +++++---- src/components/Vault.vue | 6 +-- src/components/chart/BuilderFactory.vue | 3 ++ src/components/chart/ChartOrder.vue | 5 +- src/components/chart/DiagonalBuilder.vue | 66 ++++++++++++++++-------- src/components/chart/LimitBuilder.vue | 6 +-- src/components/chart/RungBuilder.vue | 20 +++---- src/vector.js | 13 +++++ 8 files changed, 92 insertions(+), 51 deletions(-) diff --git a/src/charts/shape.js b/src/charts/shape.js index 4545337..3962a56 100644 --- a/src/charts/shape.js +++ b/src/charts/shape.js @@ -31,10 +31,10 @@ export const ShapeType = { */ Segment: {name: 'Trend Line', code: 'trend_line'}, Ray: {name: 'Ray', code: 'ray'}, - Line: {name: 'Extended Line', code: 'extended'}, + Line: {name: 'Extended Line', code: 'extended', drawingProp: 'linetoolextended'}, HRay: {name: 'Horizontal Ray', code: 'horizontal_ray'}, HLine: {name: 'Horizontal Line', code: 'horizontal_line', drawingProp: 'linetoolhorzline'}, - VLine: {name: 'Vertical Line', code: 'vertical_line'}, + VLine: {name: 'Vertical Line', code: 'vertical_line', drawingProp: 'linetoolvertline'}, PriceRange: {name: 'Price Range', code: 'price_range'}, } @@ -95,7 +95,7 @@ export class Shape { // setModel(model) { - // console.log('shape setModel', model) + console.log('shape setModel', model) if (model.color) this.model.color = model.color @@ -327,9 +327,9 @@ export class Shape { let lineChangeInfo = null function dirtyPoints(pointsA, pointsB) { - if (pointsB===null) - return pointsA !== null - if (pointsA===null) + if (pointsB===null || pointsB===undefined) + return pointsA !== null && pointsA !== undefined + if (pointsA===null || pointsA===undefined) return pointsB.length > 0 if (pointsA.length!==pointsB.length) return true @@ -543,10 +543,8 @@ export class DLine extends Line { this.model.pointA = null // {time:..., price:...} this.model.pointB = null - // since VLines must be on the start of an OHLC boundry, we track those value separately - this.shapeTimes = null - this.setModel(model) // call setModel at the end + console.log('initial shape model', {...model}) } @@ -557,10 +555,14 @@ export class DLine extends Line { } setModel(model) { + console.log('DLine setModel', {...this.model}, {...model}) super.setModel(model) if (model.pointA === null || model.pointB === null) this.delete() - else if (dirtyPoints(this.model.pointA, model.pointA) || dirtyPoints(this.model.pointB, model.pointB)) { + else if ( + dirtyPoints(this.model.pointA, model.pointA) || + dirtyPoints(this.model.pointB, model.pointB) + ) { this.model.pointA = model.pointA this.model.pointB = model.pointB this.setPoints([model.pointA, model.pointB]) @@ -575,7 +577,7 @@ export class DLine extends Line { } if (dirty) { super.onPoints(points); - this.updateModel({pointA: points[0], pointB: points[0]}) + this.updateModel({pointA: points[0], pointB: points[1]}) } } } diff --git a/src/components/Vault.vue b/src/components/Vault.vue index 88a9284..44ad2e8 100644 --- a/src/components/Vault.vue +++ b/src/components/Vault.vue @@ -23,7 +23,7 @@ -->
-
+
Creating Your Dexorder Vault @@ -48,7 +48,7 @@ Please wait while your vault is being created. This should only take a few seconds...
-
+
@@ -116,7 +116,7 @@ const balances = computed(()=>{ return bs || {} }) const empty = computed(()=>Object.values(balances.value).length===0) -const exists = computed(()=>s.vaults.length>0) +const hasVault = computed(()=>s.vault!==null) const withdrawToken = ref(null) const withdrawShow = ref(false) diff --git a/src/components/chart/BuilderFactory.vue b/src/components/chart/BuilderFactory.vue index e417074..fd84d9d 100644 --- a/src/components/chart/BuilderFactory.vue +++ b/src/components/chart/BuilderFactory.vue @@ -7,6 +7,7 @@ import {computed} from "vue"; import DCABuilder from "@/components/chart/DCABuilder.vue"; import LimitBuilder from "@/components/chart/LimitBuilder.vue"; import MarketBuilder from "@/components/chart/MarketBuilder.vue"; +import DiagonalBuilder from "@/components/chart/DiagonalBuilder.vue"; const props = defineProps(['order', 'builder']) @@ -18,6 +19,8 @@ const component = computed(()=>{ return DCABuilder case 'LimitBuilder': return LimitBuilder + case 'DiagonalBuilder': + return DiagonalBuilder default: console.error('Unknown builder component '+props.builder.component) return null diff --git a/src/components/chart/ChartOrder.vue b/src/components/chart/ChartOrder.vue index 811fe5e..d4169e4 100644 --- a/src/components/chart/ChartOrder.vue +++ b/src/components/chart/ChartOrder.vue @@ -32,13 +32,16 @@ Add condition: DCA Limit + Diagonal +
diff --git a/src/components/chart/DiagonalBuilder.vue b/src/components/chart/DiagonalBuilder.vue index c0a0a09..c242d57 100644 --- a/src/components/chart/DiagonalBuilder.vue +++ b/src/components/chart/DiagonalBuilder.vue @@ -2,9 +2,10 @@ + (Diagonals) +