EA Programing => ปัญหาที่พบในการเขียน EA => Topic started by: pa_don on กุมภาพันธ์ 22, 2012, 04:13:08 pm
-
ใครถนัดเขียน indicator มั้งครับ รบกวนขอความรู้หน่อยครับ เรื่องวาดสีลงแท่งเทียน
ผมไม่ถนัดเขียนอินดี้อ่ะครับ
ช่วยผมหน่อยครับ
ราคาเปิด + - ราคาปิดถ้ามาก 10 จุด ให้ใส่สีลงในแท่งเทียน
รบกวนขอรูปแบบโค๊ดของ indicator หรือ คำสั่งในการวาดก็ได้ครับ
ขอบคุณครับ
-
มี code ที่ใช้สร้าง แท่งเทีนยหรือยังครับ ถ้ามีแล้วโพสให้ผมหน่อยครับ
-
ผมยังไม่ได้ทำเลยครับ
เอาแบบนี้ก็ได้ครับ วาด object ชี้ตรงราคาเปิดปิดก็ได้ครับ เด่วผมลองเขียนไปเรื่อยๆก็ได้ครับ
ขอรูปแบบ วาด object ชี้ราคาเปิด และ ราคาปิดครับ
-
ลองเอาไปดูครับ
-
ผมมีอินดี้อันนี้ครับ ท่าน pises999 เขียนให้
ใช้ได้ แต่มีบั๊ก
เวลาเปิดทิ้งไว้นานๆๆๆๆ มันจะลงสีมั่วครับ บางทีแท่งสั้นก็ลง บางทีสียาวกว่าแท่ง
ผมแก้ไม่เป็น ท่านแอดมินช่วยแก้ให้หน่อยครับ
-
จะให้แก้อะไรครับ
-
ท่านลองเปิดทิ้งไว้พักใหญ่ๆแล้วจะเห็นครับ มันมีบั๊กตามที่บอกไป ถ้าเปิดไม่นานมันจะปกติดีครับ
ผมดูโค้ดแล้วก็ไม่เข้าใจว่ามันมีบั๊กได้ยังไง
-
ผมติดตั้งแล้ว MT4 มัน remove ออกเองครับ มีอะไรผิดพลาดหรือเปล่าครับ
-
ไม่มีปัญหานะครับผมใช้อยู่ทุกวันทั้งที่บ้านและ vps เอาไว้ดู m1 เป็นสัญญาณ MDP ครับ
นี้เป็นโค้ด ดัดแปลงมาจาก Heken Ashi ครับ สงสัยติดอะไรจากโค้ดเดิมอยู่เลยมีบั๊ก
//+------------------------------------------------------------------+
//| Heiken Ashi.mq4 |
//| Copyright c 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
//| For Heiken Ashi we recommend next chart settings ( press F8 or |
//| select on menu 'Charts'->'Properties...'): |
//| - On 'Color' Tab select 'Black' for 'Line Graph' |
//| - On 'Common' Tab disable 'Chart on Foreground' checkbox and |
//| select 'Line Chart' radiobutton |
//+------------------------------------------------------------------+
#property copyright "Copyright ฉ 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Violet
#property indicator_color2 Violet
#property indicator_color3 Magenta
#property indicator_color4 Magenta
#property indicator_color5 Red
#property indicator_color6 Red
//----
extern color color1 = Violet;
extern int width1 = 1;
extern double lenght1 = 10.0;
extern color color2 = Magenta;
extern int width2 = 1;
extern double lenght2 = 15.0;
extern color color3 = Red;
extern int width3 = 1;
extern double lenght3 = 25.0;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//----
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//|------------------------------------------------------------------|
int init()
{
if ( Digits == 5 || Digits == 3 ) { lenght1*=10;lenght2*=10;lenght3*=10; }
//---- indicators
/* SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2);
SetIndexBuffer(1, ExtMapBuffer2);
*/
//----
SetIndexDrawBegin(0,10);
SetIndexDrawBegin(1,10);
SetIndexDrawBegin(2,10);
SetIndexDrawBegin(3,10);
SetIndexDrawBegin(4,10);
SetIndexDrawBegin(5,10);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexStyle(0,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(2,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(3,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(4,DRAW_HISTOGRAM, 0, width3, color3);
SetIndexStyle(5,DRAW_HISTOGRAM, 0, width3, color3);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double haHigh, haLow;
if(Bars<=10) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-ExtCountedBars-1;
while(pos>=0)
{
haHigh=High[pos];
haLow=Low[pos];
ExtMapBuffer1[pos]=haLow;
double lenght=High[pos]- Low[pos];
if ( lenght >= lenght3 * Point)
{
ExtMapBuffer5[pos]=haLow;
ExtMapBuffer6[pos]=haHigh;
ExtMapBuffer1[pos]=EMPTY;
ExtMapBuffer2[pos]=EMPTY;
ExtMapBuffer3[pos]=EMPTY;
ExtMapBuffer4[pos]=EMPTY;
}
else
{
if ( lenght >= lenght2 * Point )
{
ExtMapBuffer3[pos]=haLow;
ExtMapBuffer4[pos]=haHigh;
ExtMapBuffer1[pos]=EMPTY;
ExtMapBuffer2[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
else
if ( lenght >= lenght1 * Point )
{
ExtMapBuffer1[pos]=haLow;
ExtMapBuffer2[pos]=haHigh;
ExtMapBuffer3[pos]=EMPTY;
ExtMapBuffer4[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
}
SetIndexBuffer(1, ExtMapBuffer2);
pos--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
-
อินดี้คืออันที่เป็นเส้นสี ม่วงใช่ไหมครับ
-
มัน วาด Histogram ลงบน กราฟ เวลาปล่อยไวนานหรือข้ามวันมันจะแสดงผล เบอลได้ครับ เหมือนอินดี้พวกที่แสดงขอบบนขอบล่าง เวลา ข้ามวันแล้วเกิดราคาเปิดของวันใหม่กระโดนก็จะแสดงผลบนหน้าจอเพี้ยนได้เหมือนกัน ครับลองเอา init() ที่ผมเพิ่ม WindowRedraw( ) ; ไปใส่ดูครับให้มันวาด windows ใหม่ทุกครั้งเลยน่าจะหาย ถ้าไม่หายคงต้องเปลี่ยนจาก Histogram เป้น อย่างอื่นครับ
int init()
{
if ( Digits == 5 || Digits == 3 ) { lenght1*=10;lenght2*=10;lenght3*=10; }
//---- indicators
/* SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, color1);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, color2);
SetIndexBuffer(1, ExtMapBuffer2);
*/
//----
SetIndexDrawBegin(0,10);
SetIndexDrawBegin(1,10);
SetIndexDrawBegin(2,10);
SetIndexDrawBegin(3,10);
SetIndexDrawBegin(4,10);
SetIndexDrawBegin(5,10);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexStyle(0,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(2,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(3,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(4,DRAW_HISTOGRAM, 0, width3, color3);
SetIndexStyle(5,DRAW_HISTOGRAM, 0, width3, color3);
WindowRedraw( ) ;
//---- initialization done
return(0);
}
-
ใช่ครับ มีสีม่วง ชมพู แดง 3ระดับตามความยาวแท่งกราฟ
WindowRedraw( ) ; อันนี้ใส่ใน init ไม่ต้องใส่ใน start เหรอครับ
แล้วถ้ามันต้องวาดใหม่ตลอดมันจะมีปัญหาอะไรหรือเปล่าครับ
แต่ Hiken Ashi ตัวเดิมมันทำไมไม่มีบั๊กเลย มันก็ไม่ได้ใช้ WindowRedraw( ) เหมือนกันครับ
-
ใช่ครับ มีสีม่วง ชมพู แดง 3ระดับตามความยาวแท่งกราฟ
WindowRedraw( ) ; อันนี้ใส่ใน init ไม่ต้องใส่ใน start เหรอครับ
แล้วถ้ามันต้องวาดใหม่ตลอดมันจะมีปัญหาอะไรหรือเปล่าครับ
แต่ Hiken Ashi ตัวเดิมมันทำไมไม่มีบั๊กเลย มันก็ไม่ได้ใช้ WindowRedraw( ) เหมือนกันครับ
ครับใส่ ใน init() ได้เลยครับ ไม่มีปัญหาครับเพราะอินดี้เองมันก้คำนวณค่าใหม่ตลอดเวลาครับ ตัวเก่า ความยาวมันสั้นกว่าครับ มันเลยไม่มีปัญหาครับ เท่าที่ผมเคยเจอ อิดี้ที่ลากเส้น ยาวๆๆแทบทุกตัวเปิดไวนานๆหรือข้ามวัน มันจะแสดงผล error ครับ หรือถ้าไม่อยากใส่ก็ต้องปรับความยาวลงมาพอๆๆกับตัวต้นแบบครับ
-
เอาภาพเก่ามาให้ดูครับ นี้คือตอนที่มันทำงานได้ปกติ ลงสีถูกต้อง ไม่มีบั๊ก
พอปล่อยไว้นานๆ บางทีก็ไม่กี่นาที มันก็จะเพี้ยน ลงสีมั่ว ตามภาพของท่านแอดมินครับ
เดี๋ยวจะลองดูอันใหม่ซักระยะ หายไม่หายจะมารายงาน ขอบคุณครับ
-
ลืมถามไปครับ มั่วแต่วุ่นเรื่องแสดงผล แล้วเรื่องค่าที่อินดี้ส่งออกมาถูกต้องตลอดหรือเปล่าครับ เพราะถ้าค่ามี error โอกาสแสดงผลก็มีผิดครับ
-
ขอบคุณท่านamdin และท่านไดม่อนด้วยครับ อินดดี้ที่ท่านamdin เอามาลงไว้โอเคเลยครับ
หาหนทางพัฒนาต่อ ขอบคุณมากครับ
-
ขอบคุณท่านamdin และท่านไดม่อนด้วยครับ อินดดี้ที่ท่านamdin เอามาลงไว้โอเคเลยครับ
หาหนทางพัฒนาต่อ ขอบคุณมากครับ
เอาตัวที่ผมเขียนกับ ที่ คุณ D_diamond ลงไวคือ Hiken Ashi 2 มาฟิวชั่นก็คือตัวที่คุณต้องการแล้วครับ ปรับจาก เครื่องหมายที่ผมทำไวให้ใช้ Histogram แทนแบบ Hiken Ashi ก็คือตัวที่คุณต้องการครับ
-
ขอบคุณมากคร๊าบบ
-
รู้สึกว่าจะไม่เพี้ยนแล้วครับ เดี๋ยวดูวันนี้อีกวัน ถ้าเพี้ยนจะมารายงานใหม่ ขอบคุณมากครับ
ของท่าน pa_don ผมว่าเหมือนของผมนะครับ ต่างกันแค่ high low กับ open close แก้นิดเดียว
-
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ มาเพี้ยนตอนเช้า
-
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ มาเพี้ยนตอนเช้า
มันเพี้ยนหลังข้ามวันใช่ไหมครับ โบรเกอร์ 5 จุดเดียวผมลอง set ดูก่อนครับ อีกเรื่องหนึ่งครับเรื่องค่าที่ส่งออกมา ตอนสีเพี้ยนค่าถูกต้องหรือไหมครับ
-
ผ่านไป1คืน ตกลงมันยังไม่หายเพี้ยนครับ มาเพี้ยนตอนเช้า
มันเพี้ยนหลังข้ามวันใช่ไหมครับ โบรเกอร์ 5 จุดเดียวผมลอง set ดูก่อนครับ อีกเรื่องหนึ่งครับเรื่องค่าที่ส่งออกมา ตอนสีเพี้ยนค่าถูกต้องหรือไหมครับ
สีเพี้ยน ค่าเพี้ยนด้วยครับ
-
ค่าที่ควรเป็น 0 มันเป็น -1.0000 ครับ
ส่วนค่าที่มีสี มันเพี้ยนตามสีที่ลง
แสดงว่ามันไม่ได้วาดผิด อิอิ แก้ไงหว่า
-
ค่าที่ควรเป็น 0 มันเป็น -1.0000 ครับ
ส่วนค่าที่มีสี มันเพี้ยนตามสีที่ลง
แสดงว่ามันไม่ได้วาดผิด อิอิ แก้ไงหว่า
งั้นแสดงว่ามาจาก code น่าจะเป้นส่วนที่ใช้เก็บค่าด้วยเพราะ เวลาเขียน EA ผมก็เคยเจอลีกษณะนี้ให้มันอ่านค่ามาแล้วคำนวณไปนานๆๆมีหลุด ครับ คุณ D_Diamond ส่ง หลัการ อินดี้ตัวนี้ให้ผมใน PM หน่อยครับจะลองไล่ให้ดูครับ
-
หลักการคือ เมื่อกราฟแท่ง มีความยาวตามระดับที่ตั้งไว้ ให้ลงสีทับทั้งแท่งครับ
ผมตั้งไว้3ระดับ 10 pip สีม่วง 15 pip สีชมพู 20 pip สีแดงครับ
โค้ดอยู่หน้าที่แล้วครับ
อินดี้นี่ผมเขียนไม่เป็นเลย ไม่เข้าใจหลักการและลำดับการทำงาน
-
หลักการคือ เมื่อกราฟแท่ง มีความยาวตามระดับที่ตั้งไว้ ให้ลงสีทับทั้งแท่งครับ
ผมตั้งไว้3ระดับ 10 pip สีม่วง 15 pip สีชมพู 20 pip สีแดงครับ
โค้ดอยู่หน้าที่แล้วครับ
อินดี้นี่ผมเขียนไม่เป็นเลย ไม่เข้าใจหลักการและลำดับการทำงาน
ครับเดียวลองไล่ดูครับ ตัวนี้ถ้าค่ามันส่งออกมาผิดก็น่าจะอยู่ที่ตัวเก็บค่าหละครับ เพราะตอนเปิดทำงานแรกๆๆ มันทำงานถูกต้องทุกอย่างแต่พอเปิดไปนานๆๆ ถึงหลุดเป็นเรื่องที่เกี่ยวกับ memory ของ MT4 แล้วครับผมจะลองไล่ดูก่อนครับ ว่าจะแก้ไขยังไง ครับ แต่คิดว่าคงไม่ต้องถึงขั่นสร้าง DLL แบบ EA บางตัวนะครับไม่งั้นเวลาใช้งานจริงจะหน่วงเครื่องอีก
-
จาก code ผมเจอขอผิดสังเกต
else
{
if ( lenght >= lenght2 * Point )
{
ExtMapBuffer3[pos]=haLow;
ExtMapBuffer4[pos]=haHigh;
ExtMapBuffer1[pos]=EMPTY;
ExtMapBuffer2[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
else // ไม่มีปีกกาเปิดปิด
if ( lenght >= lenght1 * Point )
{
ExtMapBuffer1[pos]=haLow;
ExtMapBuffer2[pos]=haHigh;
ExtMapBuffer3[pos]=EMPTY;
ExtMapBuffer4[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
}
แล้วถามเพิ่มนะครับ อินดี้มันคำนวณกราฟตั้งแต่แท่งเทียมแรกที่มีใน hisory เลยนะครับ คุณ D_Diamond หลักการคุณใช้แค่ราคา สูงสุดกับต่ำสุดใช้ไหม ไม่ได้เอาราคาแท่งก่อนหน้ามาคำนวณเลยใช่ไหมครับถ้าใช่ ผมว่าเราน่าจะลด จุดเริ่มของอินดี้ลงครับจากที่มันไปคำนวณตั้งแต่แท่งแรกใน history เอาสักแท่งที่ 100 นับย้อนจากแท่งปัจจุบันไปก็พอครับไม่งันยิ่งเราเปิดนาน มันต้องใช่ memory ในตัว array ที่เก็บค่ามากขึ้นครับ ถ้าเราเอาแค่ 100 แท่งจากปัจจุบัน มันก็จะใช่แค่ เก็บ 100 ตัวตลอดไม่เพิ่มไปจากนี้ครับ
-
ครับ อินดี้จะคำนวณทุกแท่ง เอาแค่แท่งปัจจุบัน ไม่เคยนึกถึงว่ามันจะมากไปครับ เพราะปกติใน mt4 จะตั้งไว้แค่ 5000 แท่ง
แล้วถ้าทำให้มันเคลียร์ค่าในอาเรย์จะได้หรือเปล่าครับ
-
ครับ อินดี้จะคำนวณทุกแท่ง เอาแค่แท่งปัจจุบัน ไม่เคยนึกถึงว่ามันจะมากไปครับ เพราะปกติใน mt4 จะตั้งไว้แค่ 5000 แท่ง
แล้วถ้าทำให้มันเคลียร์ค่าในอาเรย์จะได้หรือเปล่าครับ
อย่างตัวที่ผมใช้ทดสอบกราฟ 1 นาที นะครับ ชั่วโมงหนึ่ง เท่ากับ 60 แท่ง วันหนึ่งเท่ากับ 60*24 =1440 แท่งต่อวันครับ แต่ตัวที่ผมทดสอบมี history ย้อนหลังถึงวันที่ 20 กว่าๆเดือน มกราคม มันจะเท่ากับ 1440*30 =43200 แท่งแล้วครับ จาก code มันจะอ่านค่าทั้งหมดแล้วจับใส่ array อย่างในกรณีผมมันจะอ่าน 43200 แท่งแล้วจับใส่ array ถ้าเวลาผ่านไปจำนวนแท่งก็เพิ่มขึ้นมันก็จะคำนวณมากขึ้นตลอดครับ ส่วนเรื่องล้างค่าใน array ผมเจอฟังก์ชั่นอยู่ตัวหนึ่ง RefreshRates( ) เอาไปใส่ก่อน return ใน ฟังก์ชั่น start ครับลองดูก่อนครับถ้าไมหายคงต้องกำหนดค่าเริ่มต้นของอินแทนไม่ให้อ่านไปไกลขนาดนั่นครับ
-
ยังมี Error อีกหรือเปล่าครับคุณ D_Diamond
-
ยังไม่หายครับ งงจริงๆ อิอิ
แก้วงเล็บแล้ว ใส่ max bar แล้ว วันนี้เปิดไม่กี่ชม.ก็เป็นแล้วครับ
ทั้งที่โค้ดมันมาจาก heiken ashi แต่ทำไม heiken ashi ไม่เห็นเพี้ยน
-
ใส่ RefreshRates( ) ; ก่อน return หรือยังครับของผมเปิดไวตั้งแต่เมื่อวานยังไม่เจอ กำลังรอดูต่อไปอยู่ครับ
-
อันนี้ code ที่ผมแก้รอผลมันอยู่ครับ ผมปรับ length ให้สั้นลง เพราะอยากเห็นมันแสดงผลเยอะๆๆ เปิดไวตั้งแต่เมื่อวานยังไม่เจอกำลังรูอดูต่อไป
#property copyright "Copyright ฉ 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Violet
#property indicator_color2 Violet
#property indicator_color3 Magenta
#property indicator_color4 Magenta
#property indicator_color5 Red
#property indicator_color6 Red
//----
extern color color1 = Violet;
extern int width1 = 3;
extern double lenght1 = 10.0;
extern color color2 = Magenta;
extern int width2 = 3;
extern double lenght2 = 15.0;
extern color color3 = Red;
extern int width3 = 3;
extern double lenght3 = 25.0;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//----
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//|------------------------------------------------------------------|
int init()
{
if ( Digits == 5 || Digits == 3 ) { lenght1*=10;lenght2*=10;lenght3*=10; }
//---- indicators
//----
SetIndexDrawBegin(0,10);
SetIndexDrawBegin(1,10);
SetIndexDrawBegin(2,10);
SetIndexDrawBegin(3,10);
SetIndexDrawBegin(4,10);
SetIndexDrawBegin(5,10);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexStyle(0,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(2,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(3,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(4,DRAW_HISTOGRAM, 0, width3, color3);
SetIndexStyle(5,DRAW_HISTOGRAM, 0, width3, color3);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double haHigh, haLow;
if(Bars<=10) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-ExtCountedBars-1;
while(pos>=0)
{
haHigh=High[pos];
haLow=Low[pos];
ExtMapBuffer1[pos]=haLow;
double lenght=High[pos]- Low[pos];
if ( lenght >= lenght3 * Point)
{
ExtMapBuffer5[pos]=haLow;
ExtMapBuffer6[pos]=haHigh;
ExtMapBuffer1[pos]=EMPTY;
ExtMapBuffer2[pos]=EMPTY;
ExtMapBuffer3[pos]=EMPTY;
ExtMapBuffer4[pos]=EMPTY;
}
if ( lenght >= lenght2 * Point )
{
ExtMapBuffer3[pos]=haLow;
ExtMapBuffer4[pos]=haHigh;
ExtMapBuffer1[pos]=EMPTY;
ExtMapBuffer2[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
if ( lenght >= lenght1 * Point )
{
ExtMapBuffer1[pos]=haLow;
ExtMapBuffer2[pos]=haHigh;
ExtMapBuffer3[pos]=EMPTY;
ExtMapBuffer4[pos]=EMPTY;
ExtMapBuffer5[pos]=EMPTY;
ExtMapBuffer6[pos]=EMPTY;
}
pos--;
}
RefreshRates( ) ;
return(0);
}
-
ถ้าเปิดตั้งแต่เมื่อวานยังไม่เพี้ยน ก็คงหายแล้วครับ เพราะของผมมันเป็นทุกวันเลย อิอิ
เดี๋ยวพรุ่งนี้มารายงานใหม่ครับ
-
RefreshRates( ) ก็ช่วยไม่ได้ครับ เพี้ยนอีกแล้ว ???
-
RefreshRates( ) ก็ช่วยไม่ได้ครับ เพี้ยนอีกแล้ว ???
แปลกดีแฮะ ผมเปิดไวที่บ้าน 2 วันแบบไม่ปิด MT4 ยังไม่มีนะเดียวผมลองเอาขึ้น Server ดูก่อน
-
ที่บ้านผมก็เป็นครับ พึ่งจะรีเซทเมื่อเช้า นี้เป็นอีกละ
แต่ที่แปลกมันคือ ทำไม Heiken Ashi ถึงปกติ มันต่างกันตรงไหนนี่
-
ตัวของคุณ D_diamond ได้ลบ SetIndexBuffer(1, ExtMapBuffer2); ที่อยู่ใน start ใกล้ๆๆ pos ออกหรือยังครับเพราะในตัวต้นแบบก็ไม่มีอันนี้นะครับ
-
ลบแล้วครับเมื่อวันศุกร์ พึ่งจะเห็นว่ามันเกินมา คนเขียนโค้ดให้ ท่าน pises999 ก็ไม่รู้หายไปไหนแล้ว หาตัวไม่เจอ อิอิ
-
ลบแล้วครับเมื่อวันศุกร์ พึ่งจะเห็นว่ามันเกินมา คนเขียนโค้ดให้ ท่าน pises999 ก็ไม่รู้หายไปไหนแล้ว หาตัวไม่เจอ อิอิ
คุณ D_Diamond ใช้บน โบรเกอร์ไหน คู่เงินอะไร timeframe เท่าไรครับ ผมจะลอง set ให้ตรงกันดูครับ
-
ใช้กราฟอียู 1นาที ครับ โบรกไหนก็เป็น
บน vps ผมใช้ thinkforex ใส่ในกราฟ MDP
ผมตั้ง maxbar in history กับ maxbar on chart ไว้ 5000 ด้วยครับ
แต่ไม่ว่ามันจะเป็นด้วยสาเหตุใด ที่งงสุดๆคือทำไม heiken ashi ไม่เห็นจะเป็น
-
เอารูปของวันนี้มาให้ดู เผื่อท่านแอดมินจะนึกอะไรดีๆออก อิอิ
จากในรูป สรุปได้ว่า มันเพี้ยนอยู่ข้างเดียว คือข้างบน
จาก low ถึง high มันทาสีได้ครบ แต่ทาพ้นยาวขึ้นไปอีกเยอะ พ้นเฉพาะด้านบน ด้านล่างไม่พ้น
แต่สีม่วงแท่งที่2จากซ้าย อันนั้นทาไม่โดนแท่งเลย เป็นแค่แท่งเดียวครับ
บางแท่งก็ทาได้เต็มแท่ง ปกติ ทั้งบน-ล่าง
อิอิ งงครับ
-
ส่วนอีก terminal เป็นแบบนี้ครับ
อันนี้ฮามาก ทาไม่ถูกเลยซักแท่ง ทาทั้งบนทั้งล่าง ไอ้ตรงแท่งกราฟดันไม่ทา
ไอ้กราฟยาวๆก็ไม่มีสีเลย เขียวสะอาด
-
code ครับ
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Violet
#property indicator_color2 Violet
#property indicator_color3 Yellow
#property indicator_color4 Yellow
#property indicator_color5 Red
#property indicator_color6 Red
//----
extern color color1 = Violet;
extern int width1 = 3;
extern double lenght1 = 5;
extern color color2 = Yellow;
extern int width2 = 3;
extern double lenght2 = 8;
extern color color3 = Red;
extern int width3 = 3;
extern double lenght3 = 12;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//----
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//|------------------------------------------------------------------|
int init()
{
if ( Digits == 5 || Digits == 3 ) { lenght1*=10;lenght2*=10;lenght3*=10; }
//---- indicators
//----
SetIndexDrawBegin(0,10);
SetIndexDrawBegin(1,10);
SetIndexDrawBegin(2,10);
SetIndexDrawBegin(3,10);
SetIndexDrawBegin(4,10);
SetIndexDrawBegin(5,10);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexStyle(0,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0, width1, color1);
SetIndexStyle(2,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(3,DRAW_HISTOGRAM, 0, width2, color2);
SetIndexStyle(4,DRAW_HISTOGRAM, 0, width3, color3);
SetIndexStyle(5,DRAW_HISTOGRAM, 0, width3, color3);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double haHigh, haLow;
if(Bars<=10) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-ExtCountedBars-1;
while(pos>=0)
{
haHigh=High[pos];
haLow=Low[pos];
ExtMapBuffer1[pos]=haLow;
double lenght=High[pos]- Low[pos];
if ( lenght >= lenght3 * Point)
{
ExtMapBuffer5[pos]=haLow;
ExtMapBuffer6[pos]=haHigh;
}
if ( lenght >= lenght2 * Point )
{
ExtMapBuffer3[pos]=haLow;
ExtMapBuffer4[pos]=haHigh;
}
if ( lenght >= lenght1 * Point )
{
ExtMapBuffer1[pos]=haLow;
ExtMapBuffer2[pos]=haHigh;
}
pos--;
}
return(0);
}
-
แก้ตรงไหนเหรอครับ ดูๆไปก็เหมือนเดิม หาที่แก้ไม่เจอ
-
ตรงนี้ไงครับ
if ( lenght >= lenght3 * Point)
{
ExtMapBuffer5[pos]=haLow;
ExtMapBuffer6[pos]=haHigh;
}
if ( lenght >= lenght2 * Point )
{
ExtMapBuffer3[pos]=haLow;
ExtMapBuffer4[pos]=haHigh;
}
if ( lenght >= lenght1 * Point )
{
ExtMapBuffer1[pos]=haLow;
ExtMapBuffer2[pos]=haHigh;
}
-
ของท่านใน vps ยังปกติดี แต่ของผมเพี้ยนอยู่ดีครับ ทำไมหนอ อุตส่าห์คอมไพล์ชื่อใหม่เลยนะรอบนี้
ที่เห็นว่าต่างกันมีอย่างนึง ของท่านบัญชี4หลัก แต่ของผม5หลักครับ
-
ของท่านใน vps ยังปกติดี แต่ของผมเพี้ยนอยู่ดีครับ ทำไมหนอ อุตส่าห์คอมไพล์ชื่อใหม่เลยนะรอบนี้
ที่เห็นว่าต่างกันมีอย่างนึง ของท่านบัญชี4หลัก แต่ของผม5หลักครับ
roboforex ที่บ้านผมก็ยังไม่เพี้ยนเนอะเดียวเปลี่ยน 5 จุด บน server ให้ดู
-
ผม set 5 ไวบน server แล้วนะครับ
-
ของท่านปกติจริงๆ
เดี๋ยวผมลองใหม่อีกซักวัน มันแปลกๆอยู่นิด ของท่านแท่งใหญ่ ของผมแท่งเล็ก คงมีอะไรค้างอยู่ ปิด mt4 แล้วเปิดใหม่ มันก็ใหญ่เหมือนกันละครับ
-
ที่แท่งใหญ่ก็คงเพราะผมกด zoom กราฟเข้าไปด้วยมั้งครับ
-
ที่แท่งใหญ่ก็คงเพราะผมกด zoom กราฟเข้าไปด้วยมั้งครับ
ไม่ครับของท่านใช้ width 3 ของผม 1 แล้วก็คนละสีกัน
แต่ตอนผมคอมไพล์โค้ดเป็นอินดี้ตัวใหม่ ไม่ได้ปิด mt4 ไม่รู้เกี่ยวไหม อินดี้มันไม่หนา แล้วก็สีเหมือนเดิม ทั้งที่เป็นอินดี้ตัวใหม่
เช้านี้เลยปิด mt4 ก่อน แล้วค่อยคอมไพล์ มันก็หนา และเปลี่ยนสีครับ จะลองดูอีกวัน ถ้ายังเพี้ยนอีกบัญชีผมคงโดนสาป
-
ที่แท่งใหญ่ก็คงเพราะผมกด zoom กราฟเข้าไปด้วยมั้งครับ
ไม่ครับของท่านใช้ width 3 ของผม 1 แล้วก็คนละสีกัน
แต่ตอนผมคอมไพล์โค้ดเป็นอินดี้ตัวใหม่ ไม่ได้ปิด mt4 ไม่รู้เกี่ยวไหม อินดี้มันไม่หนา แล้วก็สีเหมือนเดิม ทั้งที่เป็นอินดี้ตัวใหม่
เช้านี้เลยปิด mt4 ก่อน แล้วค่อยคอมไพล์ มันก็หนา และเปลี่ยนสีครับ จะลองดูอีกวัน ถ้ายังเพี้ยนอีกบัญชีผมคงโดนสาป
เกี่ยวครับ พวก อินดี้ที่วาดรูปบนกราฟนี้ compile ใหม่ผมปิดกราฟเดิมแล้ว เปิดกราฟใหม่เลยครับ เพราะรู้สึกว่ามันยังจำค่าเดิมอยู่ครับ
-
ยอมแพ้มันละครับ เปิดมาได้ตั้งแต่เช้า นึกว่าจะรอด เฮ้อ สงสัยโดนสาปจริงๆ
ปล.มีแท่งเดียว2สีด้วย เท่มาก
-
ลองปิด EA ดูก่อนครับแล้วเปิดแต่ อินดี้มันอย่างเดียวครับ ผมกำลังสงสัยเรื่อง EA ที่ใช้ครับว่ามีผลต่อการแสดงผลไหมครับ
-
จะลองดูครับ
แต่ผมสงสัยตรง data window ครับ
ทำไม buffer1 มันมีค่าเท่ากับ bid ตลอดทุกแท่งเลย ในขณะที่ buffer อื่นอีก5อัน เป็นค่า ว่าง
ลองดูจากอินดี้ตัวอื่น แท่งที่มันไม่ลงสี จะเป็นค่าว่างหมดเลยทุก buffer ครับ
-
จะลองดูครับ
แต่ผมสงสัยตรง data window ครับ
ทำไม buffer1 มันมีค่าเท่ากับ bid ตลอดทุกแท่งเลย ในขณะที่ buffer อื่นอีก5อัน เป็นค่า ว่าง
ลองดูจากอินดี้ตัวอื่น แท่งที่มันไม่ลงสี จะเป็นค่าว่างหมดเลยทุก buffer ครับ
while(pos>=0)
{
haHigh=High[pos];
haLow=Low[pos];
ExtMapBuffer1[pos]=haLow; // ตรงนี้ไงครับจาก code ได้เขียนเอาไว ถึงไม่เข้าเงื่อนไข ค่าแรกก็มีค่า ผมพึงเห็นใน code ผมลืมลบเหมือนกัน
double lenght=High[pos]- Low[pos];
-
อ่าว ไม่บอกไม่เห็นจริงๆครับ อิอิ ลบออกละหายทีเถอะ สาธุ
-
หายไม่หายพรุ่งนี้เช้าก็แจ้งผล ด้วยนะครับ
-
อาจจะต้องรอถึงวันจันทร์มั้งครับ ตลาดจะปิดละ หลังๆนี่อยู่ได้นานกว่าจะเพี้ยน
-
อยู่ได้จนถึงตลาดปิดไม่เพี้ยนครับ แต่คราวนี้แปลก ปิด mt4 คอมไพล์ชื่อใหม่ มันก็ไม่ยอมหนา ทำตั้ง3รอบ
-
อยู่ได้จนถึงตลาดปิดไม่เพี้ยนครับ แต่คราวนี้แปลก ปิด mt4 คอมไพล์ชื่อใหม่ มันก็ไม่ยอมหนา ทำตั้ง3รอบ
คิดว่า mt4 ของท่าน นี้มันแปลกๆแล้วนะครับลองลงแล้วติดตั้งเปลี่ยชื่อfolder ใหม่เลยดีกว่าไหมครับตอนนี้ตลาดปิดเราน่าจะตั้งให้พร้อมก่อนเลยแล้วรอดูวันจันทีเดียว
-
ผมมั่นใจ 99% ว่าครั้งนี้น่าจะหายครับ
เพราะถ้าย้อนกลับไปดูทุกรูปที่ผมโพส ไม่ว่ามันจะเพี้ยนกี่แท่งๆๆๆๆ มันเพี้ยนอยู่สีเดียวจาก3สี ซึ่งเป็นสีที่ใช้ buffer 1
คราวนี้ลบทิ้งไปแล้ว คงหายละ สาธุ
-
เป็นยังไงมั้งครับตัวนี้ หายหรือยังครับ
-
หายแล้วครับท่าน ใช้ได้ยาวจากวันศุกร์ถึงตอนนี้ อิอิ