วิธีที่อินดิเคเตอร์ของฉันตรวจสอบว่า “ไม่ได้ใส่ลูกศรเพิ่มเติมทีหลัง” ── EA สำหรับการทดสอบ 62 บรรทัดและวิธีอ่านผลลัพธ์
สวัสดีครับ ผม lab.aiueo ที่สร้างอินดิเคเตอร์ MT4/MT5 แล้ววางขายบน GogoJungle
วันนี้ ผมจะเขียนวิธีที่คุณจะวัดเส้น arrow ของอินดิเคเตอร์ว่าปรากฏขึ้นจริงในเวลานั้นหรือไม่ด้วยตัวเอง
箭頭ของ 20:45 ปรากฏที่ 14:45 ของวันถัดไป
เมื่อวันที่ 13 กันยายน มีผู้ที่ใช้เครื่องหมายสัญญาณ SMC-Signal แจ้งมาว่าเป็นเช่นนี้
กล่าวคือ Arrow ปรากฏบนช่วง 18 ชั่วโมงหลังจากจุดที่ผ่านมาของ足
ถ้าเปิดชาร์ตดูที่足เวลา 20:45 วันที่ 10 กันยายน จะเห็น Arrow อย่างชัดเจนบน足นั้น หากราคาลงไปต่อ ก็อาจดูเหมือน Arrow ที่แม่นยำ
แต่ในเวลานั้น 20:45 ยังไม่มี Arrow
แค่ดูอย่างเดียว ไม่สามารถเห็นได้
ความคลาดเคลื่อนเช่นนี้ไม่สามารถพบได้เพียงการมองชาร์ต
- Arrow ปรากฏเฉพาะใน足ก่อนหน้าไม่กี่ชั่วโมงถึงไม่กี่วันที่ผ่านมา
- อยู่ในช่วงแจ้งเตือนจึงไม่ส่งถึงมือถือ
- หลังจากที่เพิ่มแล้ว จะดูเหมือนว่าเคยมีมาตั้งแต่ต้น
ผู้ที่แจ้งมาระบุว่าเขาเขียนทั้งเวลาของ足 และเวลาที่ปรากฏในล็อกไว้ด้วย ดังนั้นจึงสามารถหาข้อสรุปได้
ถ้าไม่มีข้อมูลแบบนี้ ผมก็อาจไม่ทันสังเกตเหมือนกัน
เมื่อวัดออกมา พบว่า 40%
SMC-Signal เป็นผลิตภัณฑ์ที่ให้ความสำคัญกับการ “ออกสัญญาณเมื่อ足ยืนยันแล้ว” และโค้ดก็เขียนด้วยแนวคิดนี้
อย่างไรก็ตาม ยังไม่มีการวัดและตรวจสอบด้วย足แต่ละ足เลย
ด้วยเหตุนี้ ผมจึงสร้างเครื่องมือสำหรับ MT4 Strategy Tester เพื่อก้าวไปข้างหน้า足ทีละตัวและบันทึกว่า arrow ปรากฏที่ “เมื่อไร” และ “บน足ใกล้กันกี่足ก่อน” ซึ่งเป็น EA 62 บรรทัด
ผลที่วัดจากเวอร์ชันก่อนการแก้ไข (足ละ 15 นาที ตั้งค่ามาตรฐาน)
| สกุลเงิน/ช่วงเวลา | Arrow ที่ปรากฏกลางทาง | ปรากฏบน足ที่ห่างจากปัจจุบัน 8足ขึ้นไป |
|---|---|---|
| EURUSD (6/1〜9/10) | 270 ตัว | 98 ตัว (สูงสุด 283 ตัวก่อน) |
| ทองคำ (Gold) (7/1〜9/10) | 196 ตัว | 83 ตัว |
Arrow ที่ปรากฏกลางทาง 36〜42% ปรากฏบน足ที่ห่างจาก足ก่อนหน้า 8足ขึ้นไป
เมื่อ 283 หลักก่อนหน้า คือประมาณ 3 วันที่แล้วสำหรับ 15 นาที
ในเวอร์ชันแก้ไข ทั้งสองกรณีเป็น 0 ตัว
ภาพแสดง arrow ที่ถูกใส่เข้าไปใน足ก่อนหน้า
“ノーリペイント” มีสองความหมาย
ในกรณีนี้ ผมได้ทบทวนการใช้คำที่ถูกต้องด้วย
ในคำอธิบายอินดิเคเตอร์ “ノーリペイント(描き直さない)” ผมคิดว่าหมายถึงสองความหมาย
- Arrow ที่เคยปรากฏแล้วจะไม่หายไปหรือเคลื่อนไปมาในภายหลัง
- Arrow ที่ปรากฏในอดีตจะไม่เพิ่มขึ้นใน足ย้อนหลัง
ผลิตภัณฑ์ของผม ออกแบบให้แนวแรกทำได้ แต่แนวที่สองไม่ได้
และแนวที่สองก็ยากจะสังเกตจากชาร์ตอดีต
“ไม่ทราบว่าจริง ๆ arrow ที่เรียงอยู่ในชาร์ตอดีตเคยปรากฏในเวลานั้นจริง ๆ หรือไม่ ต้องวัดเท่านั้นถึงจะทราบ”
จะปล่อยเครื่องมือสำหรับวัดให้ใช้งานได้เลย
ในบทความนี้ ผมจะอธิบายรหัส EA สำหรับการตรวจสอบทั้งหมด การใช้งาน และวิธีอ่านผลลัพธ์ เพื่อให้คุณสามารถลองกับอินดิเคเตอร์ที่มีอยู่ได้
ครั้งนี้ตัวเด่นคือเครื่องมือวัดเอง
กลไก
แนวคิดเรียบง่าย
Strategy Tester ของ MT4 เลื่อน足อดีตทีละตัว เมื่อมองจากมุมมองอินดิเคเตอร์ เหมือนกับว่า足ใหม่ถูกกำหนดทีละตัวแบบเรียลไทม์
ดังนั้น ทุกครั้งที่มี足ใหม่เกิดขึ้น จะอ่าน arrow ของอินดิเคเตอร์ย้อนหลังไป 300 ตัว หากพบ arrow ที่ไม่เคยเห็นมาก่อน จะเขียน 3 ข้อความลงไฟล์
- ขณะนี้ tester กำลังประมวลผล足หมายเลขอะไร
- Arrow ปรากฏอยู่บน足ไหน
- มันอยู่หน้า足หรือล้หลังเท่าไร
Arrow ที่ปรากฏทันทีหลังจาก足ยืนยันเรียกว่ามีค่าเป็น “1 ก่อนหน้า” Arrow ที่ปรากฏครั้งแรกหลังจากนั้นจะถูกมองว่าเป็นการเพิ่มย้อนหลัง
全文ของ EA สำหรับการตรวจสอบ
บันทึกไว้ในโฟลเดอร์ MQL4/Experts และคอมไพล์
//+------------------------------------------------------------------+
//| SMC-Signal の矢印が「いつ・何本前の足に」初めて現れたかを記録する |
//| 検証用EA。新しい足ごとに矢印バッファを読み、初出の矢印を |
//| tester/files/probe_.csv に書く。barNo=1 は適用時の再現分。 |
//| barNo>1 で shift>SwingLength+2 の行があれば、後から過去足へ |
//| 追加された矢印。 |
//+------------------------------------------------------------------+
#property strict
input string IndName = "SMC_Signal_109probe";
input int ScanBars = 300;
datetime g_last = 0;
datetime g_seen[];
int g_seenDir[];
int g_seenCount = 0;
int g_log = INVALID_HANDLE;
int g_barNo = 0;
bool Known(datetime t, int d)
{
for(int i = g_seenCount - 1; i >= 0; i--)
if(g_seen[i] == t && g_seenDir[i] == d) return true;
return false;
}
int OnInit()
{
g_log = FileOpen("probe_" + IndName + ".csv", FILE_WRITE|FILE_CSV|FILE_ANSI, ',');
FileWrite(g_log, "barNo", "now", "barTime", "dir", "shift");
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason)
{
if(g_log != INVALID_HANDLE) FileClose(g_log);
}
void OnTick()
{
if(Time[0] == g_last) return;
g_last = Time[0];
g_barNo++;
for(int s = 1; s <= ScanBars && s < Bars; s++)
{
for(int b = 0; b < 2; b++)
{
double v = iCustom(NULL, 0, IndName, b, s);
if(v == EMPTY_VALUE || v == 0.0) continue;
datetime t = Time[s];
if(Known(t, b)) continue;
ArrayResize(g_seen, g_seenCount + 1, 1000);
ArrayResize(g_seenDir, g_seenCount + 1, 1000);
g_seen[g_seenCount] = t;
g_seenDir[g_seenCount] = b;
g_seenCount++;
FileWrite(g_log, g_barNo, TimeToString(Time[0]), TimeToString(t),
(b == 0 ? "BUY" : "SELL"), s);
}
}
}
OnTick จะทำงานเฉพาะเมื่อ足เปลี่ยนเท่านั้น ตั้งแต่ต้น足ถึงกลางทางไม่มีการเคลื่อนไหวของราคา
สิ่งที่จะปรับแก้
1. ชื่ออินดิเคเตอร์ที่ต้องตรวจ
ใส่ชื่อไฟล์อินดิเคเตอร์ที่ต้องตรวจลงใน IndName เปลิออกันแค้ .ex4 ไม่
ชื่อเริ่มต้น SMC_Signal_109probe คือชื่อสำเนาของ SMC-Signal ที่ผมใช้วัด
สามารถเปลี่ยนได้จากการตั้งค่า “Expert Advisor” ใน tester
2. หมายเลข buffer ของ箭头
EA นี้อ่าน buffer แถวที่ 0 กับ 1 ของอินดิเคเตอร์ เพราะ SMC-Signal มี buffer 0 ซื้อ และ 1 ขาย
for(int b = 0; b < 2; b++)
...
(b == 0 ? "BUY" : "SELL")
สำหรับอินดิเคเตอร์อื่น ๆ อาจมีหมายเลขที่ต่างออกไป
เปิด MT4 Data Window (Ctrl+D) คำรบที่แสดงอยู่บน足ที่ arrow ปรากฏจะระบุว่า欄ไหนมีค่า หากไม่ชัดให้ถามผู้พัฒนาจะปลอดภัยที่สุด
3. ค่า “ไม่มี箭头”的値
EA นี้ถือว่า足ที่ค่า EMPTY_VALUE หรือ 0 เป็น “ไม่มี箭头”
อินดิเคเตอร์ส่วนใหญ่ใช้หนึ่งในสองค่า แต่บางตัวอาจใช้ค่าอื่น หากผลลัพธ์ดูผิดปกติ เช่น มี箭头บนเกือบทุก足 ให้ตรวจส่วนนี้
เกี่ยวกับพารามิเตอร์
ไม่ได้ส่งพารามิเตอร์ไปยัง iCustom ดังนั้นอินดิเคเตอร์จะทำงานตามค่าตั้งต้น
ถ้าต้องการวัดด้วยค่าเริ่มต้นที่ต่างออกไป ก็เตรียมอินดิเคเตอร์ที่ปรับค่าเริ่มต้นไว้ด้วยตนเอง
การตั้งค่าใน tester
การตั้งค่าที่ผมใช้
- EA: ตัวนี้
- คู่เงิน/กรอบเวลา: สิ่งที่ต้องตรวจ (ผมใช้ 15 นาที)
- โมเดล: ราคาเปิดเท่านั้น
- ระยะเวลา: ประมาณ 3 เดือน (EURUSD 6/1〜9/10, Gold 7/1〜9/10)
- Visual mode: ไม่จำเป็น
โมเดลเพียงพอด้วยค่าเริ่มต้นของราคาเปิด เพราะ EA นี้ไม่ทำงานเมื่อ足ยังอยู่ระหว่างการสร้าง ดังนั้นไม่ใช้การเคลื่อนไหวระหว่าง足
เมื่อเสร็จสิ้น จะมี probe_อินดนาม.csv ใน tester/files ของ MT4
วิธีอ่านผลลัพธ์
คอลัมน์ใน CSV มีทั้งหมด 5 คอลัมน์
- barNo: 足หมายเลขที่ tester กำลังประมวลผล
- now: เวลาของ足ในขณะนั้น
- barTime: เวลาของ足ที่มี箭头
- dir: BUY หรือ SELL
- shift: จำนวน足ก่อนที่箭头จะปรากฏ
การอ่านมี 3 ขั้นตอน
1. ลบแถวที่ barNo คือ 1
เมื่อเริ่มการทดสอบ อินดิเคเตอร์จะคำนวณ足ในอดีตและวาด arrows ซึ่งเป็นการจำลองเวลาในการใส่จริง ไม่ใช่ย้อนหลัง แถว barNo=1 จึงไม่ถูกนับ
2. shift = 1 ถือว่าเป็นปกติ
箭头ที่ปรากฏทันทีหลังจาก足ยืนยันแล้ว จะเป็น箭头ที่เห็นในการดูแบบเรียลไทม์ด้วย
3. shift >= 2 ถือเป็น “ความล่าช้าในการสร้าง” หรือ “การเพิ่มย้อนหลัง”
นี่คือจุดที่ต้องตัดสินใจ
บางอินดิเคเตอร์ ออก箭头ล่าช้าในระดับต่าง ๆ เพื่อการสร้าง
ตัวอย่าง อินดิเคเตอร์ที่กำหนดฐานสูงต่ำเป็นกลุ่ม (swing) โดยดูจำนวน足ที่เรียงต่อกัน เลกหลังจะยังไม่มีเส้นสูงเท่ากันจนกว่าจะรวมกัน จึง arrow จะมาช้ากว่า
ความล่าช่านี้มีจำนวนที่กำหนดไว้ในคู่มือ หากระบุไว้ก็ไม่เป็นปัญหา
ในกรณีของ SMC-Signal จำนวนบล็อกที่ใช้สำหรับการยืนยัน (ค่าเริ่มต้น 5) ได้ปรับช่วงแจ้งเตือนเป็น “ล่าสุด 7 แถบ” ดังนั้นจึงนับแบบนี้
- shift 2〜7: ช่วงล่าช้าทางการสร้าง
- shift 8以上: การเพิ่มย้อนหลัง
เมื่อวัดด้วยอินดิเคเตอร์ของคุณเอง หากคู่มือระบุจำนวนสลายช้าที่แตกต่างไป ให้วัดตามจำนวนที่ระบุ หากไม่ระบุ ให้เริ่มจาก shift=1 แล้วสงสัยส่วนอื่นทั้งหมดก่อน
ถ้าใช้ Excel เพียง COUNTIFS แล้วนับแถวที่ barNo > 1 และ shift >= 8
ผลลัพธ์ของผม
ก่อนแก้ไข (Ver1.08) และ หลังแก้ไข (Ver1.09) สำหรับ 15 นาที ตั้งค่ามาตรฐาน
| เงื่อนไข | เวอร์ชัน | Arrow ที่ปรากฏกลางทาง | shift=1 | shift 2〜7 | shift 8以上 |
|---|---|---|---|---|---|
| EURUSD 6/1〜9/10 | 1.08 | 270 | 149 | 23 | 98(最大283本前) |
| 同上 | 1.09 | 175 | 175 | 0 | 0 |
| ทองคำ 7/1〜9/10 | 1.08 | 196 | 101 | 12 | 83 |
| 同上 | 1.09 | 115 | 115 | 0 | 0 |
ในเวอร์ชันแก้ไข Arrow ที่ปรากฏกลางทางทั้งหมดปรากฏบน足ที่ยืนยันแล้วเท่านั้น
บันทึกก่อนหน้า มีรูปแบบแปลกอีกอย่างหนึ่ง
在 足เวลา 2:00 ของวันที่ 6 มิถุนายน มี arrows ขายรวมกันถึง 3 ตัวที่ตำแหน่ง 58 บอกล่วงหน้า 71 บอกล่วงหน้า 95 บอกล่วงหน้า พร้อมกันในสามตำแหน่งเดียวกัน
นี่คือเบาะแสที่ช่วยหาสาเหตุ
สามสาเหตุที่ทำให้เกิดการเพิ่มย้อนหลัง
SMC-Signal เมื่อพบ BOS (โครงสร้างแตก) จะให้คะแนนด้วยห้าปัจจัย หากคะแนนถึงเกณฑ์จะออก arrow
ปัญหาคือ BOS ย้อนหลังที่ยังไม่เกิด arrow ถูกประเมินใหม่ทุกครั้งเมื่อ足ใหม่มาถึง
หากการให้คะแนนใหม่ออกมาได้คำตอบเดียวกัน ก็ไม่มีปัญหา แต่บางครั้งบางส่วนของการให้คะแนนเกิดขึ้นจากสถานะปัจจุบัน ไม่ใช่เวลาที่กำหนด
1. การให้คะแนนโซนที่เพิ่มขึ้นดูจากโซนที่มีอยู่ในตอนนี้
หากราคาตกอยู่ใน OB (オーダーブロック) หรือ FVG ก็จะให้คะแนน เมื่ออยู่ในโซนที่ยังมีผลบังคับใช้อยู่
โซนที่เกิดขึ้นภายหลังจะเพิ่มคะแนนให้足เก่ากว่า +1 คะแนน ทำให้เกิด Arrow ใน足เก่าที่มีคะแนนสูง
2. ระบบหยุดการออก Arrow ต่อเนื่องกลับไปมองอนาคต
มีระบบหยุด arrow ในทิศทางเดียวกันจนกว่า BOS ฝั่งตรงข้ามจะออกมา
การตัดสินใจนี้จะนับไปถึง BOS ฝั่งตรงข้ามที่ออกมาในภายหลัง
เมื่อแนวโน้มเปลี่ยนทิศและ BOS ฝั่งตรงข้ามออกมา Arrow ที่เคยถูกหยุดจะถูกปลดปล่อยออกพร้อมกัน จุดเหตุการณ์ที่ 6 มิถุนายน 2:00 ที่เกิด 3 อันพร้อมกันคือสิ่งนี้
3. การให้คะแนนร่างบนดเวใจที่ยอดอยู่ถูกถอนออกแล้วทำซ้ำ
ก่อนหน้านั้นเมื่อข้อมูล足สูงขึ้นมา แต่ข้อมูลสูงกว่าส่งมอบมาแล้ว ต้องทำการให้คะแนนอีกครั้งเมื่อข้อมูลเพิ่มเติมมาถึง
วิธีแก้ไข
หนึ่งครั้งที่ตัดสินแล้ว จะไม่ประเมินซ้ำ
จำขอบเขตเวลาของ BOS ที่ได้คะแนนแล้วและอย่าประเมินซ้ำในขอบเขตนั้น จะประเมินเฉพาะ BOS ที่ปรากฏใหม่เท่านั้น
ด้วยวิธีนี้ arrows ที่เคลื่อนไหวออกในเรียลไทม์จะปรากฏบน足ที่ยืนยันแล้วเท่านั้น
บันทึกขอบเขตที่ตัดสินแล้วลงไฟล์
เมื่อ MT4 รีสตาร์ท หรือเปลี่ยนกรอบเวลา อินดิเคเตอร์จะคำนวณใหม่ ถ้าลืมพื้นที่ที่ตัดสินแล้วอาจประเมินซ้ำได้
ดังนั้น จึงบันทึกพื้นที่ที่ตัดสินแล้วลงไฟล์เพื่อโหลดตอนเปิดใช้งานครั้งต่อไป เนื้อหามีแค่ 3 บรรทัด (ลายนิ้วมือการตั้งค่า ขอบเขตเริ่มต้น และขอบเขตสิ้นสุด)
- ช่วงเวลาที่ตัดสินแล้วจะมีเฉพาะ箭头ที่ถูกบันทึกแสดงอยู่
- หากอินดิเคเตอร์ไม่ทำงานในช่วงที่ MT4 ปิดไป ตอนเปิดใช้งานครั้งถัดไป จะทำการจำลองย้อนหลังเป็นอดีตโดยไม่แจ้งเตือน
- หากปรับการตั้งค่าเกี่ยวกับการออก arrow ก็ให้ลบขอบเขตและจำลองอดีตใหม่ด้วยการตั้งค่าใหม่
ใน tester ไม่บันทึก
นี่คือดักเล็กๆ
ถ้าเปิดบันทึกใน tester จะเหลือ “ช่วงอนาคต” ที่บันทึกไว้รอบก่อน ทำให้ arrow ไม่ปรากฏในทดสอบครั้งต่อไป ดังนั้นจึงไม่บันทึกใน tester
คุมการหยุดการออก arrow ด้วยขีดจำกัด
ไม่ให้ BOS ที่ออกมาพายหลังเป็นนับต่อไป
การแก้ไขนี้ Arrow ที่แสดงในอดีตจะลดลงกว่าเดิม เพราะก่อนหน้านี้บาง arrows ที่ไม่เคยปรากฏในเรียลไทม์ถูกนับรวมอยู่
ถึงแม้รีสตาร์ทก็ยังแสดงผลเหมือนเดิมหรือไม่
ระบบการบันทึกทำงานหรือไม่ ผมตรวจสอบด้วยการแบ่งการทดสอบเป็นสองรอบ ใช้สำเนาที่เปิดใช้งานการบันทึกใน tester ด้วย
- รอบที่ 1: 6/1〜7/15
- รอบที่ 2: 7/16〜8/14
นี่คือการ breakdown arrows ที่แสดงในรอบที่สอง
| เงื่อนไขรอบที่ 2 | Arrow ที่ปรากฏ | ที่ปรากฏแบบเรียลไทม์ในรอบที่ 1 | อย่างอื่น |
|---|---|---|---|
| มีไฟล์บันทึก | 5 | 4 | 1 |
| ไม่มีไฟล์บันทึก | 2 | 1 | 1 |
Arrow ที่เหลืออยู่ 1 ตัวใน “อย่างอื่น” คือ足หลังการเสร็จรอบแรก (7/15 20:00) ที่เป็นการจำลองช่วงเวลาที่หยุดไว้
ถ้ามีไฟล์บันทึกอยู่ บรรทัด arrows ที่เห็นแบบเรียลไทม์ครั้งแรกในรอบที่1 จะยังอยู่ในรอบที่2ด้วย ถ้าไม่มีไฟล์ บางส่วนจะหายไป
Arrow ที่ปรากฏระหว่างรอบที่สองทั้งหมดมีค่า shift=1
สิ่งที่วิธีนี้วัดไม่ได้
- อินดิเคเตอร์ที่วาด Arrow ไม่ใช่เป็นตัวอักษรบน chart (เป็นวัตถุกราฟ) ทำให้ iCustom อ่านไม่ได้ EA นี้จึงไม่สามารถวัดได้
- อินดิเคเตอร์ที่ทำงานแตกต่างระหว่าง tester และ realtime ผมเปิดใช้งานการบันทึกใน tester ไว้ แต่ผลลัพธ์ในทดสอบอาจไม่ตรงกับการเคลื่อนไหวจริง
- Arrow ที่ปรากฏระหว่าง足แล้วหายระหว่าง足นี้ EA นี้ดูเฉพาะ足ที่ยืนยันแล้วเท่านั้น จึงไม่บันทึกการเกิดขึ้นของ arrow ระหว่าง足กลางทาง
สิ่งที่ยังคงอยู่
ขอพูดอย่างตรงไปตรงมา
- การให้คะแนนโซนยังคง “ตรวจสอบในโซนที่ใช้อยู่ในตอนนี้” ผลกระทบเกิดเฉพาะเมื่อเริ่มใช้งานครั้งแรกหรือเมื่อเปลี่ยนการตั้งค่า และ arrows ใน实时จะไม่เพิ่มเพิ่มเติมภายหลัง
- เวอร์ชัน MT5 ได้รับการแก้ไขในทำนองเดียวกัน แต่การทดสอบที่วัดได้เป็นเวอร์ชัน MT4
สิ่งที่ได้เรียนรู้
ถ้าพูดว่า “ออกบน足ที่ยืนยันแล้ว” ก็ต้องวัด
รหัสเขียนด้วยความตั้งใจนี้ และเมื่อวัดจริงพบว่าเป็น 40%
และถ้าไม่มีการติดต่อจากคุณ ผมก็อาจไม่คิดจะวัดด้วยเสียแล้ว การที่คุณเขียนเวลาของ足และเวลาของล็อกไว้ด้วยกันคือจุดเริ่มต้นของทั้งหมด และผมขอขอบคุณจริงๆ
สรุป
- 箭头ในอดีตของชาร์ตไม่จำเป็นต้องปรากฏจริงในเวลาที่ระบุ อาศัยการดูอย่างเดียวไม่สามารถแยกได้
- ถ้าเลื่อนไฟล์足ทีละตัวด้วย tester แล้วบันทึกว่า arrows ปรากฏครั้งแรกบน足ข้อไหน จะสามารถวัดได้
- barNo=1 ไม่ควรถูกนับ shift=1 ถือว่าปกติ สำหรัล shift ที่สร้างล่าช้าเกินไปจะถือเป็นการออกย้อนหลัง
- ในผลิตภัณฑ์ของผม ก่อนแก้ไข 36〜42% เป็นการออกย้อนหลัง สาเหตุคือการประเมินอดีตของCandidate โดยอ้างถึงสถานะปัจจุบัน
- วิธีแก้คือ “หนึ่งครั้งที่ตัดสินแล้วจะไม่ประเมินอีก” และบันทึกช่วงเวลาเพื่อการเริ่มต้นใหม่เมื่อเปิดใช้งาน
ลองวัดด้วยอินดิเคเตอร์ที่คุณมีดู หากไม่พบอะไร ก็เป็นหลักฐานที่ช่วยให้สบายใจ หรือหากพบอะไร ก็เป็นข้อมูลที่บอกผู้สร้างได้
บทความนี้พูดถึงการตรวจสอบเพื่อยืนยันข้อมูล และตัวเลขการตรวจสอบที่อัปเดตไว้ใน SMC-Signal MT4 เวอร์ชัน Ver1.09 และ MT5 เวอร์ชัน Ver1.02
SMC-Signal (MT4)
SMC-Signal MT5
บทความนี้เป็นบันทึกการพัฒนาและการตรวจสอบของผมเอง โค้ดที่แสดงเป็นเวิร์กสำหรับการตรวจสอบ ไม่รับประกันการทำงาน ให้ใช้งานโดยความรับผิดชอบของคุณ อินดิเคเตอร์ที่แนะนำคือเครื่องมือช่วยวิเคราะห์ตลาด ไม่รับประกันกำไร โปรดใช้วิจารณญาณในการตัดสินใจลงทุนด้วยตัวคุณเอง
ขอบคุณที่อ่านจนจบครับ