หน้าแรก ตัวชี้วัดทางเทคนิค โพสต์

รูปแบบสปายค์ของ Boom Index - ตัวบ่งชี้สำหรับ MetaTrader 5

ไฟล์แนบ
61749.zip (1.79 KB, ดาวน์โหลด 0 ครั้ง)

สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึงรูปแบบการเทรดที่น่าสนใจ นั่นคือ รูปแบบสปายค์ของ Boom Index ซึ่งสามารถช่วยให้เราค้นหาจังหวะการเข้าซื้อที่ดีได้ในตลาดนี้

การตรวจจับรูปแบบสปายค์ขาขึ้น

  • รูปแบบ 3 แท่ง:

    • แท่งที่ 1: แท่งเขียวที่มีขนาดใหญ่ (สปายค์ขาขึ้น).

    • แท่งที่ 2: แท่งแดง (การย่อตัว).

    • แท่งที่ 3: แท่งเขียวที่มีขนาดใหญ่ (สปายค์ขาขึ้น).

  • เมื่อรูปแบบนี้ปรากฏขึ้น จะมีการสร้าง โซน ขึ้นมา

การสร้างโซน

  • จะมี สี่เหลี่ยมสีน้ำเงิน วาดจากช่วงสูง/ต่ำของ 3 แท่ง

  • จะมี เส้นแนวนอนสีเขียวสด วาดที่ราคาเปิดของแท่งกลาง (แท่งที่ 2)

  • เส้นนี้จะขยายไปในอนาคตจนกว่าราคาจะกลับมา


อธิบายค่า Input

mq5
input color BoxColor = clrBlue; // สีของกล่องรูปแบบ 3 แท่ง
input color EntryLineColor = clrLime; // สีของเส้นเข้า
input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // รูปแบบของเส้นเข้า
input int BoxWidth = 2; // ความกว้างของกรอบกล่อง
input int EntryLineWidth = 2; // ความกว้างของเส้นเข้า
input int EntryLineLength = 200; // ระยะทางที่เส้นเข้าขยายออก

ค่าต่างๆ เหล่านี้ช่วยให้เราควบคุมรูปแบบของกล่องและเส้นเข้าได้อย่างเต็มที่

แนวคิดหลัก

เราต้องการค้นหารูปแบบขาขึ้น 3 แท่ง:

1. แท่งแรก – ขาขึ้นที่แข็งแกร่ง (สปายค์)

2. แท่งที่สอง – การย่อตัวขาลง

3. แท่งที่สาม – สปายค์ขาขึ้นอีกครั้ง

เมื่อรูปแบบนี้ปรากฏ เราจะวาด:

- กรอบรอบรูปแบบ

- เส้นแนวนอนที่ราคาเปิดของแท่งที่ 2 (จุดเข้า)

เมื่อราคากลับมาที่เส้นนี้ ("การบรรเทา") เราจะตัดเส้นนั้นออกและหลีกเลี่ยงการวาดซ้ำ

โครงสร้างข้อมูล

struct PatternInfo {
	datetime time; // เวลาของรูปแบบ
	double entry; // ราคาที่เข้าซื้อ (ราคาเปิดของแท่งที่ 2)
	double high; // สูงสุดของ 3 แท่ง
	double low; // ต่ำสุดของ 3 แท่ง
	bool mitigated; // ราคากลับมาที่ระดับเข้าหรือไม่?
};

CArrayObj activePatterns;

เราจะใช้ struct `PatternInfo` เพื่อติดตามแต่ละรูปแบบที่ถูกต้องและเก็บไว้ในอาเรย์ ช่วยหลีกเลี่ยงการประมวลผลซ้ำ

ฟังก์ชันการเริ่มต้น

int OnInit() {
	IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
	ArrayInitialize(activePatterns, 0);
	return INIT_SUCCEEDED;
}

เราจะตั้งค่าความแม่นยำของตัวบ่งชี้และเตรียมอาเรย์

การตรวจจับรูปแบบ (ในแต่ละแท่ง)

for (int i = limit - 3; i >= 0; i--) {
	if (isBullish(i+2) && isBearish(i+1) && isBullish(i))

เราจะตรวจสอบว่าทั้งสามแท่งล่าสุดอยู่ในรูปแบบสปายค์หรือไม่: เขียว-แดง-เขียว

double high = MathMax(MathMax(High[i], High[i+1]), High[i+2]);
double low = MathMin(MathMin(Low[i], Low[i+1]), Low[i+2]);
double entry = Open[i+1];

เราจะดึงค่าที่สูงสุด/ต่ำสุดเพื่อใช้ในกรอบและระดับเข้าจากแท่งที่ 2

PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;

สร้างและเพิ่มรูปแบบนี้ลงในรายการของเรา

การวาดกรอบและเส้น

string boxName = "Box_" + IntegerToString(Time[i]);
ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low);

วาดสี่เหลี่ยม (กรอบ) จากรูปแบบ 3 แท่ง

string lineName = "EntryLine_" + IntegerToString(Time[i]);
ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);

วาดเส้นเข้าจากราคาเปิดของแท่งที่ 2 ไปข้างหน้าในเวลา

การตรวจสอบการบรรเทา (ในแต่ละแท่ง)

for (int p = 0; p < activePatterns.Total(); p++) {
	PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
	if (!pt.mitigated && Low[0] <= pt.entry)

ถ้าราคาเข้ามาถึงระดับเข้าซื้อ:

pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));

ลบเส้นยาวเดิมออก

ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0, pt.time, pt.entry, Time[0], pt.entry);

สร้างเส้นสั้นเพื่อแสดงจุดที่การบรรเทาเกิดขึ้น

ฟังก์ชันช่วย

bool isBullish(int i) {
	return Close[i] > Open[i];
}

bool isBearish(int i) {
	return Close[i] < Open[i];
}

ตัวบ่งชี้นี้เรียบง่ายแต่ทรงพลัง:

  • ตรวจจับพฤติกรรมสปายค์จริงใน Boom
  • แสดงการเข้าออกของเงินที่ชาญฉลาด
  • ตรวจจับการบรรเทาโดยอัตโนมัติ

ตอนนี้คุณสามารถทดสอบใน Boom 500 หรือ Boom 1000 ได้แล้ว


ขอบคุณที่อ่านครับ ถ้ามีคำถามหรืออยากแชร์ความคิดเห็น สามารถคอมเมนต์ได้เลยนะครับ!


โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)