ایف ایم زیڈ پلیٹ فارم بیک ٹیسٹ پروگرام ایک مکمل کنٹرول عمل ہے ، اور یہ پروگرام ایک خاص تعدد کے مطابق نان اسٹاپ پولنگ کر رہا ہے۔ ہر مارکیٹ اور ٹریڈنگ API کے ذریعہ واپس آنے والے اعداد و شمار کالنگ ٹائم کے مطابق اصل رن ٹائم کا بھی تقلید کرتے ہیں۔ یہ اس سے تعلق رکھتا ہےonTick
سطح، نہیںonBar
دیگر بیک ٹسٹ سسٹم کی سطح پر۔Ticker
اعداد و شمار (زیادہ آپریٹنگ تعدد کے ساتھ حکمت عملی).
تخروپن کی سطح کے بیک ٹسٹ بیک ٹسٹ سسٹم کے نچلے K لائن کے اعداد و شمار پر مبنی ہے ، اور ایک خاص الگورتھم کے مطابق ، ٹکر ڈیٹا انٹروپولیشن کو اس نچلے K لائن بار میں دیئے گئے اعلی ، کم ، افتتاحی اور اختتامی قیمتوں کے اقدار کے فریم ورک کے اندر تخروپن کیا جاتا ہے۔Bar
وقت کی سیریز.
حقیقی مارکیٹ کی سطح کے بیک ٹیسٹ میں حقیقی ٹکر کی سطح کے اعداد و شمار ہیںBar
ٹکر سطح کے اعداد و شمار پر مبنی حکمت عملیوں کے لئے ، حقیقی مارکیٹ کی سطح کے بیک ٹیسٹ کا استعمال حقیقت سے قریب ہے۔ حقیقی مارکیٹ کی سطح پر بیک ٹیسٹ ، ٹکر اصلی ریکارڈ شدہ ڈیٹا ہے ، نقلی نہیں ہے۔
حقیقی مارکیٹ بیک ٹسٹ کے لئے کوئی نیچے K لائن آپشن نہیں ہے (کیونکہ ٹکر ڈیٹا حقیقی ہے ، پیداوار کا تقلید کرنے کے لئے نیچے K لائن کی ضرورت نہیں ہے) ۔
تخروپن کی سطح backtest میں، پیداticker
K- لائن کے اعداد و شمار کی بنیاد پر تخروپن کیا جاتا ہے۔ یہ K- لائن کا ڈیٹا نیچے K- لائن ہے۔ تخروپن کی سطح کے بیک ٹسٹ کے اصل استعمال میں ، نیچے K لائن کا دورانیہ API کو K لائن حاصل کرنے کے لئے کال کرنے کے دورانیے سے کم ہونا چاہئے جب حکمت عملی چل رہی ہو۔ بصورت دیگر ، نیچے K لائن کے بڑے سائیکل اور تیار کردہ ٹکرز کی ناکافی تعداد کی وجہ سے ، API کو کال کرتے وقت ڈیٹا کو مسخ کردیا جائے گا تاکہ مخصوص مدت کی K لائن حاصل کی جاسکے۔ جب بڑے دورانیے کے K لائن بیک ٹسٹ کا استعمال کرتے ہو تو ، آپ مناسب طریقے سے نیچے K لائن سائیکل کو بڑھا سکتے ہیں۔
نچلی K لائن پر تخروپن ٹکرز پیدا کرنے کا طریقہ کار مشہور ٹریڈنگ سافٹ ویئر میٹا ٹریڈر 4 کے ساتھ ایک ہی ہے
نیچے کی لائن کے اعداد و شمار سے ٹِک ڈیٹا کی نقالی کے لئے مخصوص الگورتھم:
function recordsToTicks(period, num_digits, records) {
// http://www.metatrader5.com/en/terminal/help/tick_generation
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
}
لہذا، جب تخروپن کی سطح کے بیک ٹیسٹ کا استعمال کرتے ہوئے، وقت کی سیریز میں قیمتوں میں چھلانگ ہوگی.