การแจ้งเตือนในตัวบ่งชี้ วิธีการแทรกการแจ้งเตือนและลูกศรลงในตัวบ่งชี้ของคุณ?

การทำงานกับ Telegram ใน MetaTrader ช่องทาง Telegram และบอท
ความลับ Autolot ของฉัน ล็อตไดนามิกหรือ Autolot ความเสี่ยงจากความสมดุล
การทำงานกับ Telegram ใน MetaTrader ช่องทาง Telegram และบอท
ความลับ Autolot ของฉัน ล็อตไดนามิกหรือ Autolot ความเสี่ยงจากความสมดุล

Description

Alert: คำค้นหาบ่อยที่สุดในเครื่องมือค้นหาและหัวข้อยอดนิยมในฟอรั่มมักมีวลีต่อไปนี้

การแจ้งเตือนในหัวข้อเหล่านี้ช่วยให้คุณติดตามแนวโน้มล่าสุดได้

  • “ตัวบ่งชี้การแจ้งเตือน”
  • “คุณจะเพิ่มสัญญาณเสียงลงในตัวบ่งชี้ได้อย่างไร”
  • “ช่วยฉันใส่สัญญาณเสียงเข้าไปในตัวบ่งชี้หน่อย”
  • “วิธีใส่การแจ้งเตือนและลูกศร”
  • “จะส่งข้อความไปยังอีเมลหรือโทรศัพท์เมื่อสัญญาณมาจากตัวบ่งชี้ได้อย่างไร”

ในบทความนี้ ฉันจะอธิบายอย่างละเอียดเกี่ยวกับวิธีง่ายๆ ในการเพิ่ม Alert, Mail, Push, และ Arrow ลงในตัวบ่งชี้ (Indicator) ใดก็ได้ โดยใช้โค้ดเพิ่มเติมที่มีให้ที่ Expforex.

  

Foreword 

ในการติดตั้ง Alert ลงในตัวบ่งชี้ของคุณอย่างถูกต้อง คุณจำเป็นต้องมีซอร์สโค้ดแบบเปิดของตัวบ่งชี้นั้น

โค้ดที่ถูกดึงกลับมา (decompiled code) ไม่แนะนำให้ใช้ เพราะสำหรับมือใหม่ โค้ดที่ถูกดึงกลับมา จะให้ข้อมูลน้อยมากและเข้าใจยาก

นอกจากนี้ คุณอาจพบปัญหาการคอมไพล์หลังการแก้ไขได้

xCustomEA

หากคุณกำลังมองหาวิธีที่ง่ายกว่าในการ ทำให้กลยุทธ์การเทรดเป็นอัตโนมัติ โดยไม่ต้องเขียนโค้ดเฉพาะทางที่ซับซ้อน ขอแนะนำ xCustomEA.

Expert Advisor ตัวนี้จาก Expforex ถูกออกแบบมาให้ทำงานร่วมกับตัวบ่งชี้ที่สร้างสัญญาณลูกศรได้อย่างราบรื่น ด้วย xCustomEA คุณสามารถทำให้ตัวบ่งชี้ที่แสดงลูกศรซื้อหรือขายเป็นอัตโนมัติ ช่วยให้คุณสร้างกลยุทธ์แบบอัตโนมัติได้อย่างง่ายดาย โดยไม่ต้องพัฒนาโค้ดที่ยุ่งยาก

xCustomEA ทำให้การใช้สัญญาณจากตัวบ่งชี้เพื่อเทรดโดยอัตโนมัตินั้นเป็นเรื่องง่าย ผู้เทรดสามารถโฟกัสไปที่การปรับปรุงประสิทธิภาพการเทรด แทนที่จะเสียเวลาไปกับการพัฒนาโปรแกรมที่ซับซ้อน Expert Advisor นี้เป็นทางเลือกที่ดี แทนการจ้างโปรแกรมเมอร์ให้มาเขียนโค้ดเฉพาะทาง ด้วยโซลูชันที่ใช้งานได้อย่างตรงไปตรงมา

หากต้องการข้อมูลเพิ่มเติม โปรดเยี่ยมชม หน้าของ xCustomEA หรือสำรวจ Expert Advisor อื่นๆ จาก Expforex

Beginning of Work to insert Alert

   ขั้นแรก คุณต้องกำหนดว่าบัฟเฟอร์ (buffer) ใดในตัวบ่งชี้ที่ให้สัญญาณ จุดประสงค์ในการสร้างการแจ้งเตือน และเงื่อนไขในการกำหนดสัญญาณตามตัวบ่งชี้นั้น

Important: ตัวบ่งชี้บางตัวอาจแสดงเฉพาะบัฟเฟอร์ภายนอกที่กำหนดไว้ในโค้ดส่วนต้นเท่านั้น

#property indicator_buffers 1

อย่างไรก็ตาม ตัวบ่งชี้อาจมีบัฟเฟอร์ที่ซ่อนอยู่ ซึ่งถูกกำหนดในฟังก์ชัน init() และประกาศเป็นตัวแปรไว้

IndicatorBuffers(7): เราอาจต้องการเฉพาะบัฟเฟอร์แรก

ตัวอย่างเช่น หากคุณมี 1 บัฟเฟอร์ภายนอก ให้ดูตัวแปร:

SetIndexBuffer(0, SarBuffer);
  • 0 คือบัฟเฟอร์ตัวแรก
  • 1 คือบัฟเฟอร์ตัวที่สอง

บัฟเฟอร์เหล่านี้หรือชื่อบัฟเฟอร์อาจระบุได้ โดยนำเมาส์ไปชี้ที่เส้นใดเส้นหนึ่งของตัวบ่งชี้บนกราฟ

Value1 – หมายถึงบัฟเฟอร์ตัวแรกหรือ 0 ในระบบอินเด็กซ์ของโค้ด

SetIndexBuffer(0, SarBuffer); // ชื่อบัฟเฟอร์ที่เราต้องการ

หากใช้ SarBuffer ก็จะเป็นตัวที่ใช้

เพิ่ม Alert และลูกศรใน Indicator Forex
ตัวอย่างค่าบัฟเฟอร์ใน Indicator สำหรับ MT4/MT5

จากนั้นจึงเป็นเรื่องทางเทคนิคในการกำหนดว่า สัญญาณจะเกิดขึ้นในรูปแบบใด

ตัวอย่างเช่น ถ้าเป็นการตัดผ่านเส้น 0 จากด้านบน (ล่าง) ลงมา (ขึ้น) ก็จะมีรูปแบบเงื่อนไขดังนี้:

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

การตัดผ่านราคาปัจจุบันหรือแท่งเทียน (การทะลุแท่งเทียนโดยตัวบ่งชี้) เป็นต้น:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

ถ้าเป็นการตัดผ่านระดับ (level) ที่กำหนด เช่น stochastics:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

ถ้าในตัวบ่งชี้ของคุณมีลูกศรอยู่แล้ว ก็อาจมีเงื่อนไขสัญญาณในรูปแบบต่อไปนี้:

DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE

อย่างไรก็ตาม คุณต้องใช้ตรรกะและความเข้าใจ เพื่อบันทึกสัญญาณให้ถูกต้อง หากคุณติดขัด โปรดเขียนคำถามในกระทู้ แนบตัวบ่งชี้ แสดงเส้นบนกราฟ และอธิบายรายละเอียดว่าคุณทำไม่ได้ตรงไหน การส่งข้อความเช่น “ต้องการใส่ alert ในตัวบ่งชี้” โดยไม่อธิบายว่าใส่ตรงไหน หรือไม่มีตัวบ่งชี้แนบมาด้วย จะไม่ช่วยให้แก้ไขได้

Code “Alerts and arrows from www.expforex.com

ขั้นตอนต่อไปในการเพิ่ม alert ให้กับตัวบ่งชี้ของเรา มีรายละเอียดดังนี้

STEP 1

วางโค้ดต่อไปนี้ไว้ที่ส่วนต้นของ EA (ก่อนฟังก์ชัน OnCalculate() หรือ start)

//+==+//+ www.expforex.com edit AlertArrow +//+==+
extern string Alerts="Alerts and arrows from www.expforex.com";
extern bool AlerT=true; // Issue an alert to the screen
extern bool Mail=true; // Send message
extern bool Push=true; // Send PUSH to phone
extern bool Arrow=true; // Put arrows on signals
extern int shift=1; // On which bar to count the signal 0 - on the current one, 1 - on the closed
int timeee;
// Internal variable
string nameInd;
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3)
{
  if(nm=="")
    nm=DoubleToStr(Time[0], 0);
  if(t1 <= 0)
    t1=Time[0];
  if(p1 <= 0)
    p1=Bid;
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  wind=0;
  if(ObjectFind(nm) < 0)
    ObjectCreate(nm, OBJ_ARROW, wind, 0, 0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_WIDTH, sz);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0)
{
  nameInd=WindowExpertName();
  int wind=WindowFind(nameInd);
  if(wind==-1)
    wind=0;
  ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0);
  ObjectSetText("Originalalert", "Modification AlertArrow www.expforex.com", 10, "Arial Bold", Red);
  ObjectSet("Originalalert", OBJPROP_CORNER, 2);
  ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200);
  ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10);
  if(!history)
  {
    if(AlerT)
      Alert(text);
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]);
    if(!IsTesting())
      if(Mail)
        SendMail(text, text);
    if(!IsTesting())
      if(Push)
        SendNotification(text);
  }
  if(history)
  {
    if(Arrow)
      if(arrowdir==1)
        SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]);
    if(Arrow)
      if(arrowdir==2)
        SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]);
  }
}//+==+//+ www.expforex.com edit AlertArrow +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  for(int i=ObjectsTotal(); i>=0; i--)
  {
    if(StringFind(ObjectName(i), nameInd)!=-1)
      ObjectDelete(ObjectName(i));
  }
}
//+------------------------------------------------------------------+

STEP 2

 ก่อนจบฟังก์ชัน OnCalculate() ให้ใส่โค้ดต่อไปนี้ไว้ก่อน

return(rates_total); }

โค้ดที่จะวาง:

//+==+//+ www.expforex.com edit AlertArrow +//+==+

nameInd=WindowExpertName();

if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP", 1);
  timeee=Time[0];
}
if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25)
{
  Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN", 2);
  timeee=Time[0];
}//+==+//+ www.expforex.com edit AlertArrow +//+==+

STEP 3

โค้ดนี้จะทำงานเป็นสัญญาณของเรา

แน่นอนว่าต้องเปลี่ยนบางส่วนให้เข้ากับโค้ดของคุณเอง

ตัวอย่างด้านล่างเป็นรูปแบบเงื่อนไขสำหรับการแจ้งเตือน:

1. การตัดผ่านเส้น 0 จากด้านบน (ล่าง) ลงมา (ขึ้น):

SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0

2. การตัดผ่านราคาปัจจุบันหรือแท่งเทียน:

SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]

3. การตัดผ่านระดับ (level) เฉพาะ เช่น stochastics:

SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75;

SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;

After Use

ในการเพิ่มสัญญาณเสียงลงในตัวบ่งชี้ ให้ทำตามขั้นตอน:

  • 1. เปิดการตั้งค่าของตัวบ่งชี้
  • 2. มองหาหัวข้อ “Alert” หรือ “Arrows
  • 3. เลือกตัวเลือกในการเพิ่มการแจ้งเตือนด้วยเสียง
  • 4. เลือกไฟล์เสียงที่ต้องการใช้ในการแจ้งเตือน
  • 5. บันทึกการเปลี่ยนแปลง

เมื่อใส่สัญญาณเสียงลงในตัวบ่งชี้ คุณจะได้รับแจ้งเตือนเสียง เมื่อเงื่อนไขที่กำหนดตรงตามที่ต้องการ ซึ่งช่วยให้คุณตัดสินใจเทรดได้ดียิ่งขึ้น

If You Need Arrows on History, Then You Need to Do This:

หลังจากโค้ดข้างต้น ให้เพิ่มโค้ดต่อไปนี้:

//+==+//+ www.expforex.com edit AlertArrow +//+==+

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
if(counted_bars > 0)
   counted_bars--;
int limit2 = Bars - counted_bars;
for(int i2 = 0; i2 < limit2; i2++) {
    nameInd = WindowExpertName();
    if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP" + i2, 1, true, i2);
    }
    if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25)
    {
        Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN" + i2, 2, true, i2);
    }
}
//+==+//+ www.expforex.com edit AlertArrow +//+==+

Examples

ตัวอย่างเหล่านี้นำมาจากส่วนที่เกี่ยวข้องในฟอรั่มของเรา ฉันได้ปรับตัวบ่งชี้ตามหลักการที่กล่าวมาข้างต้นแล้ว

ตัวอย่างใช้งาน Alert Arrow ใน Indicator
การตั้งค่า Alert ในตัวบ่งชี้ Forex ตัวอย่างเพิ่มเติม

Conclusions

ในบทความนี้ ฉันได้อธิบายขั้นตอนการสร้างสัญญาณสำหรับตัวบ่งชี้ อย่างละเอียดและเข้าใจง่ายที่สุด

โค้ดข้างต้นสามารถใช้งานได้โดยไม่มีข้อจำกัดกับตัวบ่งชี้ใดก็ได้ สิ่งสำคัญคือไม่เปลี่ยนชื่อผู้เขียน (author) เมื่อเพิ่มโค้ดลงในตัวบ่งชี้

หากคุณชอบบทความนี้ และรู้สึกว่าวิธีใส่สัญญาณนี้เป็นประโยชน์ กรุณาแสดงความคิดเห็นและให้คะแนนในหัวข้อ

Signal Bar: This Is Important to Know

Questions?

หากคุณมีคำถามใดๆ โปรดสอบถามได้ เราไม่ได้ขายสินค้าที่ไม่ชัดเจน

นอกจากนี้ ผลิตภัณฑ์แต่ละตัวของเรายังสามารถทดสอบได้ก่อนทำการซื้อ

เราขอขอบคุณความสนใจและการสนับสนุนผลิตภัณฑ์ของเรา และจะพยายามรักษามาตรฐานคุณภาพไว้เสมอ

ขอบคุณที่อยู่กับเรา!

คุณมีคำถามหรือไม่?

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

โพสต์นี้มีให้บริการใน: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어 العربية Indonesian ไทย Tiếng Việt


    Please wait, contacting ...

    คำเตือนความเสี่ยง:


    ผลการเทรดในอดีตไม่รับประกันผลลัพธ์ในอนาคต.

    การเทรดแลกเปลี่ยนเงินตราต่างประเทศด้วยการเทรดแบบมีมาร์จิ้นมีความเสี่ยงสูงและอาจไม่เหมาะสำหรับนักลงทุนทุกคน.

    โปรดทราบว่าการใช้หุ่นยนต์เทรด (trading robots) มีความเสี่ยงอย่างมาก และคุณอาจสูญเสียมากกว่าการลงทุนเริ่มต้นของคุณ.

    โปรดดำเนินการด้วยความระมัดระวัง ประเมินสถานการณ์ทางการเงินของคุณอย่างละเอียด และพิจารณาขอคำแนะนำจากผู้เชี่ยวชาญที่มีคุณสมบัติเหมาะสม.

    Disclaimer

    เว็บไซต์นี้ใช้คุกกี้เพื่อปรับปรุงประสบการณ์ของคุณ เมื่อคุณใช้เว็บไซต์นี้ แสดงว่าคุณยอมรับนโยบายการปกป้องข้อมูลและข้อจำกัดความรับผิดชอบของเรา
    อ่านเพิ่มเติม