mirror of
https://github.com/freqtrade/frequi.git
synced 2024-11-26 21:15:15 +00:00
move heikin ashi formatter to its own file
This commit is contained in:
parent
b786ac3749
commit
7362e8d5e2
|
@ -9,7 +9,7 @@ import { Component, Vue, Prop, Watch } from 'vue-property-decorator';
|
|||
import { Trade, PairHistory, PlotConfig } from '@/types';
|
||||
import randomColor from '@/shared/randomColor';
|
||||
import { roundTimeframe } from '@/shared/timemath';
|
||||
import { heikinAshiDataset } from '@/shared/formatters';
|
||||
import heikinashi from '@/shared/heikinashi';
|
||||
import ECharts from 'vue-echarts';
|
||||
|
||||
import { use } from 'echarts/core';
|
||||
|
@ -353,7 +353,7 @@ export default class CandleChart extends Vue {
|
|||
const options: EChartsOption = {
|
||||
dataset: {
|
||||
source: this.heikinAshi
|
||||
? heikinAshiDataset(this.datasetColumns, this.dataset.data)
|
||||
? heikinashi(this.datasetColumns, this.dataset.data)
|
||||
: this.dataset.data,
|
||||
},
|
||||
grid: [
|
||||
|
|
|
@ -112,41 +112,6 @@ export function humanizeDurationFromSeconds(duration: number): string {
|
|||
return humanizeDuration(duration * 1000);
|
||||
}
|
||||
|
||||
export function heikinAshiDataset(columns: string[], data: Array<number[]>) {
|
||||
const openIdx = columns.indexOf('open');
|
||||
const closeIdx = columns.indexOf('close');
|
||||
const highIdx = columns.indexOf('high');
|
||||
const lowIdx = columns.indexOf('low');
|
||||
|
||||
// Prevent mutation of original data
|
||||
const dataCopy = data.map((original) => original.slice());
|
||||
|
||||
return dataCopy.map((candle, idx, candles) => {
|
||||
if (idx === 0) {
|
||||
const close = (candle[openIdx] + candle[highIdx] + candle[lowIdx] + candle[closeIdx]) / 4;
|
||||
const open = (candle[openIdx] + candle[closeIdx]) / 2;
|
||||
|
||||
candle[openIdx] = open;
|
||||
candle[closeIdx] = close;
|
||||
|
||||
return candle;
|
||||
}
|
||||
|
||||
const prevCandle = candles[idx - 1];
|
||||
const close = (candle[openIdx] + candle[highIdx] + candle[lowIdx] + candle[closeIdx]) / 4;
|
||||
const open = (prevCandle[openIdx] + prevCandle[closeIdx]) / 2;
|
||||
const high = Math.max(candle[highIdx], candle[openIdx], candle[closeIdx]);
|
||||
const low = Math.min(candle[lowIdx], candle[openIdx], candle[closeIdx]);
|
||||
|
||||
candle[openIdx] = open;
|
||||
candle[closeIdx] = close;
|
||||
candle[highIdx] = high;
|
||||
candle[lowIdx] = low;
|
||||
|
||||
return candle;
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
formatPrice,
|
||||
formatPercent,
|
||||
|
@ -155,5 +120,4 @@ export default {
|
|||
timestampToDateString,
|
||||
dateStringToTimeRange,
|
||||
setTimezone,
|
||||
heikinAshiDataset,
|
||||
};
|
||||
|
|
34
src/shared/heikinashi.ts
Normal file
34
src/shared/heikinashi.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
export default function heikinAshiDataset(columns: string[], data: Array<number[]>) {
|
||||
const openIdx = columns.indexOf('open');
|
||||
const closeIdx = columns.indexOf('close');
|
||||
const highIdx = columns.indexOf('high');
|
||||
const lowIdx = columns.indexOf('low');
|
||||
|
||||
// Prevent mutation of original data
|
||||
const dataCopy = data.map((original) => original.slice());
|
||||
|
||||
return dataCopy.map((candle, idx, candles) => {
|
||||
if (idx === 0) {
|
||||
const close = (candle[openIdx] + candle[highIdx] + candle[lowIdx] + candle[closeIdx]) / 4;
|
||||
const open = (candle[openIdx] + candle[closeIdx]) / 2;
|
||||
|
||||
candle[openIdx] = open;
|
||||
candle[closeIdx] = close;
|
||||
|
||||
return candle;
|
||||
}
|
||||
|
||||
const prevCandle = candles[idx - 1];
|
||||
const close = (candle[openIdx] + candle[highIdx] + candle[lowIdx] + candle[closeIdx]) / 4;
|
||||
const open = (prevCandle[openIdx] + prevCandle[closeIdx]) / 2;
|
||||
const high = Math.max(candle[highIdx], candle[openIdx], candle[closeIdx]);
|
||||
const low = Math.min(candle[lowIdx], candle[openIdx], candle[closeIdx]);
|
||||
|
||||
candle[openIdx] = open;
|
||||
candle[closeIdx] = close;
|
||||
candle[highIdx] = high;
|
||||
candle[lowIdx] = low;
|
||||
|
||||
return candle;
|
||||
});
|
||||
}
|
|
@ -186,7 +186,7 @@ export interface PairHistory {
|
|||
timeframe: string;
|
||||
timeframe_ms: number;
|
||||
columns: string[];
|
||||
data: number[];
|
||||
data: Array<number[]>;
|
||||
length: number;
|
||||
/** Number of buy signals in this response */
|
||||
buy_signals: number;
|
||||
|
|
Loading…
Reference in New Issue
Block a user