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

Stochastic พร้อมการลดเสียงรบกวน - อินดิเคเตอร์สำหรับ MetaTrader 4

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

คำอธิบาย:

Stochastic Oscillator มาตรฐานที่มาพร้อมฟีเจอร์ความไว

อินดิเคเตอร์นี้มีพารามิเตอร์เหมือนกับ Stochastic ปกติ แต่มีพารามิเตอร์ "ความไว" เพิ่มเข้ามา (Sens ในหน้าต่างพารามิเตอร์)

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

Lane Stochastic คลาสสิคจะระบุราคาปัจจุบันระหว่างราคาสูงสุดและต่ำสุดในช่วงบาร์จำนวนหนึ่ง ตามค่าของ %K (Kperiod) และไม่แยกแยะความแตกต่างระหว่างเอ็กซ์เทรมัม เช่น 1 จุด หรือ 100 จุด ผลลัพธ์จะเหมือนกัน ทำให้เรามีสัญญาณ overbought/oversold.

แต่เมื่อใช้ขีดจำกัดบางอย่าง เราสามารถพิจารณาเฉพาะการแกว่งที่สำคัญเท่านั้น.

ในรูปที่ 1 (EURUSD, 1M) มีกราฟราคา, Stochastic ปกติ และอินดิเคเตอร์ที่เสนอไว้แสดงอยู่

ภาพ:

รูปที่ 1.

ฟิลด์ของอินดิเคเตอร์เหมือนกับ iStochastic แต่มีพารามิเตอร์เพิ่มเติม Sens - ความไว.

บัฟเฟอร์เอาต์พุตก็เหมือนกัน: 0-ค่าของ Stochastic เอง, 1-เส้นสัญญาณ.

double iCustom(string symbol, int timeframe, "_StochNR", int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift); // StochNR เพิ่มฟิลด์ใหม่ Sensฟิลด์

double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift) // stochastic ปกติ 

สำหรับการใช้งานจริง สามารถเรียกใช้ตามที่ระบุข้างต้นได้ แต่แนะนำให้ทำในอีกวิธีหนึ่ง โดยการเพิ่มโค้ดไปยังฟังก์ชัน Stoch ของคุณ:

double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) { 
    // ราคาสูงสุดและต่ำสุด
    double max,min,c;
    for(int j=i; j<i+Slowing; j++) {
      if(PriceFild==1) { // ตาม Close
         max+=Close[ArrayMaximum(Close,Kperiod,j)];
         min+=Close[ArrayMinimum(Close,Kperiod,j)];
        }
      else { // ตาม High/Low
         max+=High[ArrayMaximum(High,Kperiod,j)];
         min+=Low[ArrayMinimum(Low,Kperiod,j)];
        }
      c+=Close[j];
     }
   
   double delta=max-min;
   if(delta<sens) {
      sens/=2;
      max+=sens; min-=sens;
     }
   delta=max-min;
   if(delta==0) double s0=1;
   else s0=(c-min)/delta;

   return(100*s0);
  }

ชัดเจนว่าถ้าคุณต้องการเส้นสัญญาณ คุณจำเป็นต้องใช้ค่าเฉลี่ยเคลื่อนที่เพิ่มเติมจากค่าของมัน อีกวิธีหนึ่งคือการดึงค่าจากบัฟเฟอร์ที่ 1 ของ iCustom แต่จะช้า.

เห็นไหม ว่าตอนนี้ชื่อมันชัดเจนขึ้น มีประเภทการคำนวณราคา หากความไวถูกกำหนดให้มากกว่า 0 ค่าของมันจะถูกเพิ่มเข้าไปในชื่อของออสซิลเลเตอร์.


หมายเหตุจากบรรณาธิการ:

โปรดทราบว่านี่เป็นการแปลที่ตรงตามต้นฉบับจาก เวอร์ชันภาษาอังกฤษต้นฉบับ.

หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ สำหรับผู้เขียน ควรโพสต์ที่ ที่นี่.

หากคุณพบว่าโค้ดนี้มีประโยชน์สำหรับการเทรดหรือการศึกษา อย่าลืมขอบคุณผู้เขียนด้วยนะ!

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

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