발명자의 양적 피드백 중 전략 프로그램은 완전한 제어 프로세스이며, 이 프로그램은 일정 주파수에 따라 멈추지 않는 설문조사를 한다. 각 상황, 거래 API가 반환하는 데이터는 또한 호출 시점에 따라 실제 실행 시기를 모방하는 상황이다. onTick 계층에 속하며, 다른 피드백 시스템의 onBar 계층은 아니다. Ticker 데이터를 기반으로 한 전략의 피드백을 더 잘 지원한다.
시뮬레이션 레벨 회귀는 회귀 시스템의 밑바닥 K선 데이터를 따라, 주어진 밑바닥 K선 Bar의 최고값, 최저값, 개시값, 닫기값의 수학적 구성의 프레임워크 내에서 특정 알고리즘에 따라, 틱러 데이터 삽입 값을 이 Bar의 시간 연속으로 시뮬레이션한다.
실 디스크 레벨 회귀는 Bar의 시간 순서에 있는 실제 틱러 레벨 데이터이다. 틱러 레벨 데이터에 기반한 전략의 경우 실 디스크 레벨 회귀를 사용하는 것이 더 가깝다. 디스크 레벨 회귀, 틱어는 실제 기록된 데이터이며, 시뮬레이션 생성되지 않는다.
리드 디스크 레벨 회귀에는 기본 K 라인 옵션이 없습니다. 시뮬레이션 레벨 회귀에서는, K선 데이터 기반의 시뮬레이션으로 생성된 티커。 이 K선 데이터는 기본 K선。 실제 사용 시 기본 K선 주기가 전략 실행 시 K선을 얻기 위해 API를 호출하는 주기보다 작아야 한다。 그렇지 않으면, 기본 K선 주기가 크기 때문에 생성된 티커 수가 부족하여, API를 호출하여 지정된 주기의 K선을 얻는 경우, 데이터가 부정확할 수 있다。 큰 주기의 K선 회귀를 사용할 때, 기본 대층 K선 주기를 적절히 조정할 수 있다。
기본 K선에서 모의티커를 생성하는 메커니즘은 MT4와 동일하다.
기본 K선 데이터를 모의하는 tick 데이터의 구체적인 알고리즘:
function recordsToTicks(period, num_digits, records) {
if (records.length == 0) {
return []
}
var ticks = []
var steps = [0, 2, 4, 6, 10, 12, 16, 18, 23, 25, 27, 29]
var pown = Math.pow(10, num_digits)
function pushTick(t, price, vol) {
ticks.push([Math.floor(t), Math.floor(price * pown) / pown, vol])
}
for (var i = 0; i < records.length; i++) {
var T = records[i][0]
var O = records[i][1]
var H = records[i][2]
var L = records[i][3]
var C = records[i][4]
var V = records[i][5]
if (V > 1) {
V = V - 1
}
if ((O == H) && (L == C) && (H == L)) {
pushTick(T, O, V)
} else if (((O == H) && (L == C)) || ((O == L) && (H == C))) {
pushTick(T, O, V)
} else if ((O == C) && ((O == L) || (O == H))) {
pushTick(T, O, V / 2)
pushTick(T + (period / 2), (O == L ? H : L), V / 2)
} else if ((C == H) || (C == L)) {
pushTick(T, O, V / 2)
pushTick(T + (period * 0.382), (C == L ? H : L), V / 2)
} else if ((O == H) || (O == L)) {
pushTick(T, O, V / 2)
pushTick(T + (period * 0.618), (O == L ? H : L), V / 2)
} else {
var dots = []
var amount = V / 11
pushTick(T, O, amount)
if (C > O) {
dots = [
O - (O - L) * 0.75,
O - (O - L) * 0.5,
L,
L + (H - L) / 3.0,
L + (H - L) * (4 / 15.0),
H - (H - L) / 3.0,
H - (H - L) * (6 / 15.0),
H,
H - (H - C) * 0.75,
H - (H - C) * 0.5,
]
} else {
dots = [
O + (H - O) * 0.75,
O + (H - O) * 0.5,
H,
H - (H - L) / 3.0,
H - (H - L) * (4 / 15.0),
H - (H - L) * (2 / 3.0),
H - (H - L) * (9 / 15.0),
L,
L + (C - L) * 0.75,
L + (C - L) * 0.5,
]
}
for (var j = 0; j < dots.length; j++) {
pushTick(T + period * (steps[j + 1] / 30.0), dots[j], amount)
}
}
pushTick(T + (period * 0.98), C, 1)
}
return ticks
}
따라서, 시퀀스 상의 가격 변동은 시뮬레이션 레벨 재검토를 사용할 때 발생합니다.