เขียน ea ที่ใช้ bollinger band ในการเปิด order

  • 4 replies
  • 2252 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

yong

เขียน ea ที่ใช้ bollinger band ในการเปิด order

« เมื่อ: 15, กรกฎาคม 2018, 01:52:20 PM »
        คืออยากทราบว่าถ้าเราจะเขียน code ให้ ea เปิดคำสั่งจาก bb โดยมีเงื่อนไขว่า
กรณี buy = ให้ราคาปิดของแท่งเทียนทะลุออกนอก bb ด้านบน และ รอให้ราคา วิ่งกลับมาที่เส้นกลาง bb ค่อยเปิดคำสั่ง buy
กรณี sell = ให้ราคาปิดของแท่งเทียนทะลุออกนอก bb ด้านล่าง และ รอให้ราคา วิ่งกลับมาที่เส้นกลาง bb ค่อยเปิดคำสั่ง sell

 พอลองเขียนแล้วมันกลับไม่ทำงานตามเงื่อนไขครับ กลับกลายเป็น buy ที่ bb ขอบล่าง sell ที่ bb ขอบบน

//        Highest Lowest  function

double HIest_C = Close[iHighest(Symbol(), 0, MODE_CLOSE, 0, 0)];
double LOest_C = Close[iLowest(Symbol(), 0, MODE_CLOSE, 0, 0)];
double H = iHigh(Symbol(), 0, 0);
double L = iLow(Symbol(), 0, 0);   
     
//        BB  function
double BBU = iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, 0);
double BBL = iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, 0);
double BBM = iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_MAIN, 0);

//           Trend Choose Function
int Trend = 0;
 //---------------   
          if( ((HIest_C > BBU)) && (L < BBM) )
                                                                                 
           {
            Trend = 1;
           }
      //---------------
         if( ((LOest_C < BBL)) && (H > BBM) )
           
           {
            Trend = -1;
           }
      //---------------

ปล. trend = 1 คือ buy  ,  trend = -1 คือ sell

 (TH)** (TH)** (TH)**

Share Topic.


*

ออนไลน์ iRuler

  • *
  • 1,258
  • 40

Re: เขียน ea ที่ใช้ bollinger band ในการเปิด order

« ตอบกลับ #1 เมื่อ: 15, กรกฎาคม 2018, 02:35:07 PM »
double HIest_C = Close[iHighest(Symbol(), 0, MODE_CLOSE, 0, 0)];
double LOest_C = Close[iLowest(Symbol(), 0, MODE_CLOSE, 0, 0)];

ลองเปลี่ยนเลขตัวสีแดงนี่ก่อนครับ แล้วลองดูอีกทีครับ

*

yong

Re: เขียน ea ที่ใช้ bollinger band ในการเปิด order

« ตอบกลับ #2 เมื่อ: 15, กรกฎาคม 2018, 03:22:24 PM »
ปรับตัวเลขเป็น 1 และเป็น 2
ผล ea เปิด buy ที่เส้น บน bb และ ea เปิด sell ที่เส้นล่าง bb เลยครับ ไม่เปิดที่เส้นกลาง bb

ปรับตัวเลขเป็น 30
ผล ea เปิดสวนทางที่เส้นขอบเหมือนเดิมครับ

double HIest_C = Close[iHighest(Symbol(), 0, MODE_CLOSE, 1, 0)];
double LOest_C = Close[iLowest(Symbol(), 0, MODE_CLOSE, 1, 0)];

 **11 **11 **11

*

ออนไลน์ iRuler

  • *
  • 1,258
  • 40

Re: เขียน ea ที่ใช้ bollinger band ในการเปิด order

« ตอบกลับ #3 เมื่อ: 16, กรกฎาคม 2018, 06:12:50 PM »
iHighest(Symbol(), 0, MODE_CLOSE, X, Y)

คำสั่งนี้เป็นคำสั่งที่เอาไว้หาแท่งเทียนที่มีราคาปิดสูงที่สุด โดยเริ่มหาแท่งที่ Y เป็นจำนวน X แท่ง (แท่งปัจจุบัน คือแท่งที่ 0 นับจากขวาไปซ้าย เป็นแท่งที่ 1 2 และ 3 ไปเรื่อยๆ เป็นจำนวน X แท่ง)
ในโค้ดตอนแรก ตัว X และ Y ถ้าใส่เป็น 0 และ 0 มันจะหาย้อนหลังไปพันๆ แท่งเลย

ลองมาพิจรณาเงื่อนไขอีกทีครับ

อ้างถึง
กรณี buy = ให้ราคาปิดของแท่งเทียนทะลุออกนอก bb ด้านบน และ รอให้ราคา วิ่งกลับมาที่เส้นกลาง bb ค่อยเปิดคำสั่ง buy
กรณี sell = ให้ราคาปิดของแท่งเทียนทะลุออกนอก bb ด้านล่าง และ รอให้ราคา วิ่งกลับมาที่เส้นกลาง bb ค่อยเปิดคำสั่ง sell

ตัวสีน้ำเงิน: ราคาปิดของแท่งสีอะไร
ตัวสีแดง: ถ้าใช้คำว่า "รอให้ราคา วิ่งกลับมา" แบบนี้ใช้ Ask หรือ Bid ก็ได้ ไม่จำเป็นต้องใช้ iLow/iHigh

ถ้ายังจำทำต่อ ลองแบบนี้ครับ

โค๊ด
   double HIest_C = NormalizeDouble(Close[iHighest(Symbol(), 0, MODE_CLOSE, 5, 0)],Digits);
   double LOest_C = NormalizeDouble(Close[iLowest(Symbol(), 0, MODE_CLOSE, 5, 0)],Digits);
   double H = NormalizeDouble(iHigh(Symbol(), 0, 0),Digits);
   double L = NormalizeDouble(iLow(Symbol(), 0, 0),Digits);

   double BBU = NormalizeDouble(iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, 0),Digits);
   double BBL = NormalizeDouble(iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, 0),Digits);
   double BBM = NormalizeDouble(iBands(Symbol(), 0, 20, 2, 0, PRICE_CLOSE, MODE_MAIN, 0),Digits);

 (TH)**

*

yong

Re: เขียน ea ที่ใช้ bollinger band ในการเปิด order

« ตอบกลับ #4 เมื่อ: 24, กรกฎาคม 2018, 05:51:17 PM »
โห้ววว ไม่ได้เข้ามาดูนาน ขอบคุณมากๆครับท่าน ))/* ))/* ))/*
 (TH)** (TH)** (TH)**

Tags: