mirror of
https://github.com/freqtrade/frequi.git
synced 2024-11-10 10:21:55 +00:00
chore: roundTimeframe util
This commit is contained in:
parent
8f73ae1071
commit
df2dfd5f70
12
src/auto-imports.d.ts
vendored
12
src/auto-imports.d.ts
vendored
|
@ -10,6 +10,9 @@ declare global {
|
||||||
const EffectScope: typeof import('vue')['EffectScope']
|
const EffectScope: typeof import('vue')['EffectScope']
|
||||||
const KeyCode: typeof import('./composables/inputListener')['KeyCode']
|
const KeyCode: typeof import('./composables/inputListener')['KeyCode']
|
||||||
const OpenTradeVizOptions: typeof import('./stores/settings')['OpenTradeVizOptions']
|
const OpenTradeVizOptions: typeof import('./stores/settings')['OpenTradeVizOptions']
|
||||||
|
const ROUND_CLOSER: typeof import('./utils/roundTimeframe')['ROUND_CLOSER']
|
||||||
|
const ROUND_DOWN: typeof import('./utils/roundTimeframe')['ROUND_DOWN']
|
||||||
|
const ROUND_UP: typeof import('./utils/roundTimeframe')['ROUND_UP']
|
||||||
const TradeLayout: typeof import('./stores/layout')['TradeLayout']
|
const TradeLayout: typeof import('./stores/layout')['TradeLayout']
|
||||||
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
|
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
|
||||||
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
|
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
|
||||||
|
@ -102,6 +105,7 @@ declare global {
|
||||||
const resolveComponent: typeof import('vue')['resolveComponent']
|
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||||
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
||||||
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
||||||
|
const roundTimeframe: typeof import('./utils/roundTimeframe')['default']
|
||||||
const setActivePinia: typeof import('pinia')['setActivePinia']
|
const setActivePinia: typeof import('pinia')['setActivePinia']
|
||||||
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
|
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
|
||||||
const shallowReactive: typeof import('vue')['shallowReactive']
|
const shallowReactive: typeof import('vue')['shallowReactive']
|
||||||
|
@ -331,6 +335,9 @@ declare module 'vue' {
|
||||||
readonly DashboardLayout: UnwrapRef<typeof import('./stores/layout')['DashboardLayout']>
|
readonly DashboardLayout: UnwrapRef<typeof import('./stores/layout')['DashboardLayout']>
|
||||||
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
||||||
readonly OpenTradeVizOptions: UnwrapRef<typeof import('./stores/settings')['OpenTradeVizOptions']>
|
readonly OpenTradeVizOptions: UnwrapRef<typeof import('./stores/settings')['OpenTradeVizOptions']>
|
||||||
|
readonly ROUND_CLOSER: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_CLOSER']>
|
||||||
|
readonly ROUND_DOWN: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_DOWN']>
|
||||||
|
readonly ROUND_UP: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_UP']>
|
||||||
readonly TradeLayout: UnwrapRef<typeof import('./stores/layout')['TradeLayout']>
|
readonly TradeLayout: UnwrapRef<typeof import('./stores/layout')['TradeLayout']>
|
||||||
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
|
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
|
||||||
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
|
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
|
||||||
|
@ -423,6 +430,7 @@ declare module 'vue' {
|
||||||
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
||||||
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
||||||
|
readonly roundTimeframe: UnwrapRef<typeof import('./utils/roundTimeframe')['default']>
|
||||||
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
|
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
|
||||||
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
|
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
|
||||||
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||||
|
@ -644,6 +652,9 @@ declare module '@vue/runtime-core' {
|
||||||
readonly DashboardLayout: UnwrapRef<typeof import('./stores/layout')['DashboardLayout']>
|
readonly DashboardLayout: UnwrapRef<typeof import('./stores/layout')['DashboardLayout']>
|
||||||
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
||||||
readonly OpenTradeVizOptions: UnwrapRef<typeof import('./stores/settings')['OpenTradeVizOptions']>
|
readonly OpenTradeVizOptions: UnwrapRef<typeof import('./stores/settings')['OpenTradeVizOptions']>
|
||||||
|
readonly ROUND_CLOSER: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_CLOSER']>
|
||||||
|
readonly ROUND_DOWN: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_DOWN']>
|
||||||
|
readonly ROUND_UP: UnwrapRef<typeof import('./utils/roundTimeframe')['ROUND_UP']>
|
||||||
readonly TradeLayout: UnwrapRef<typeof import('./stores/layout')['TradeLayout']>
|
readonly TradeLayout: UnwrapRef<typeof import('./stores/layout')['TradeLayout']>
|
||||||
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
|
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
|
||||||
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
|
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
|
||||||
|
@ -736,6 +747,7 @@ declare module '@vue/runtime-core' {
|
||||||
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
||||||
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
||||||
|
readonly roundTimeframe: UnwrapRef<typeof import('./utils/roundTimeframe')['default']>
|
||||||
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
|
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
|
||||||
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
|
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
|
||||||
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { ElementEvent } from 'echarts';
|
import { ElementEvent } from 'echarts';
|
||||||
import { ROUND_CLOSER, roundTimeframe } from '@/shared/timemath';
|
|
||||||
import humanizeDuration from 'humanize-duration';
|
import humanizeDuration from 'humanize-duration';
|
||||||
import ECharts from 'vue-echarts';
|
import ECharts from 'vue-echarts';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { formatPercent, formatPriceCurrency, splitTradePair } from '@/shared/formatters';
|
import { formatPercent, formatPriceCurrency, splitTradePair } from '@/shared/formatters';
|
||||||
import { roundTimeframe } from '@/shared/timemath';
|
|
||||||
import { Order, PairHistory, Trade, BTOrder } from '@/types';
|
import { Order, PairHistory, Trade, BTOrder } from '@/types';
|
||||||
import { ScatterSeriesOption } from 'echarts';
|
import { ScatterSeriesOption } from 'echarts';
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,7 @@ export const ROUND_CLOSER = 4;
|
||||||
* @param direction Direction (see ROUND_* constants)
|
* @param direction Direction (see ROUND_* constants)
|
||||||
* @returns timestamp in ms rounded to the timeframe
|
* @returns timestamp in ms rounded to the timeframe
|
||||||
*/
|
*/
|
||||||
export function roundTimeframe(
|
export default function (timeframems: number, timestamp: number, direction: number = ROUND_DOWN) {
|
||||||
timeframems: number,
|
|
||||||
timestamp: number,
|
|
||||||
direction: number = ROUND_DOWN,
|
|
||||||
) {
|
|
||||||
const offset = timestamp % timeframems;
|
const offset = timestamp % timeframems;
|
||||||
let up = direction === ROUND_UP;
|
let up = direction === ROUND_UP;
|
||||||
if (direction === ROUND_CLOSER) {
|
if (direction === ROUND_CLOSER) {
|
||||||
|
@ -22,9 +18,3 @@ export function roundTimeframe(
|
||||||
}
|
}
|
||||||
return timestamp - offset + (up ? timeframems : 0);
|
return timestamp - offset + (up ? timeframems : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
|
||||||
ROUND_UP,
|
|
||||||
ROUND_DOWN,
|
|
||||||
roundTimeframe,
|
|
||||||
};
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { describe, it, expect } from 'vitest';
|
import { describe, it, expect } from 'vitest';
|
||||||
import { roundTimeframe, ROUND_DOWN, ROUND_UP, ROUND_CLOSER } from '@/shared/timemath';
|
import roundTimeframe, { ROUND_DOWN, ROUND_UP, ROUND_CLOSER } from '@/utils/roundTimeframe';
|
||||||
|
|
||||||
// 1651021200000 = 2022-04-27T11:05:00+00:00
|
// 1651021200000 = 2022-04-27T11:05:00+00:00
|
||||||
|
|
Loading…
Reference in New Issue
Block a user