Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: รบกวนแอดมินหน่อยครับ  (Read 19013 times)

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: รบกวนแอดมินหน่อยครับ
« Reply #15 on: กันยายน 04, 2010, 06:06:54 pm »
ลอง copy ไปแล้ว backtest ดู ค่าผมสั่งให้ print ออกมาดูแล้วครับ แต่ถ้าจะให้ sure รวันจันทร์ตลาดเปิดแล้วค่อยดูอีกทีเพราะ backtest ไม่แน่นอน
extern double Lots=0.1;
extern int SL=20;
extern int TP=10;
static double one =0;
static double two = 0;
static double three = 0;
static int lastway =0;

int check (double stosignal ,double stomain)
{   
     static int way     =0;
     
 
     
     if(stosignal > stomain)
     {
        way=1;
     
     }
   
    if(stosignal < stomain)
     {
        way=2;
     
     }
     if(way==2)
     {
        lastway=2;
     
     }
     
     if(way == 1 && lastway!= way)
     {
        lastway = 1;
       
        if( ( one == 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            one=Bid;
       
           return(0);
       
        }
       
       if( ( one != 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            two=Bid;
           
            return(0);
       
        }
       
         if( ( one != 0) &&   (two != 0)   &&   (three== 0)    )
       
        {
            three=Bid;
           
            return(0);
       
        }
       
     
       
           
     }
 
       return (0);

}

int start()
  {     
         double stomain=iStochastic(Symbol(),30,5,5,5,MODE_SMA,1,MODE_MAIN,0);
         double stosignal=iStochastic(Symbol(),30,5,5,5,MODE_SMA,1,MODE_SIGNAL,0);
         
          check(stosignal,stomain);
         
         
            Print("A :",one);
            Print("B :",two);
            Print("C :",three);
            Print(".....");
           
       // ถ้าจะเอาไปใช้งานจริงๆๆให้เอา /*   */  ออกไม่งั้นค่าจะไม่ถูกล้าง
   /*     if( ( one != 0) &&   (two != 0)   &&   (three!= 0)    )
       
        { one=0;
          two=0;
          three=0;
          }
*/
           
   return(0);
  }

Jummum

  • Newbie
  • *
  • Posts: 29
Re: รบกวนแอดมินหน่อยครับ
« Reply #16 on: กันยายน 04, 2010, 08:59:25 pm »
เอาไปรันแล้วครับ แต่...
คือค่าที่ได้เป็นค่า ราคา ไม่ใช่ค่าของ Stochastic อ่ะครับ
ตอนแรกพยายามทำเองอ่ะก็เอามาได้แต่ราคานี่ล่ะครับ แต่ค่าStoนี่จนปัญญาจริงๆ
« Last Edit: กันยายน 04, 2010, 09:13:57 pm by Jummum »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: รบกวนแอดมินหน่อยครับ
« Reply #17 on: กันยายน 04, 2010, 09:59:34 pm »
สรูปคือ ต้องการค่าของ Sto ที่มันตัดกันใช่ไหมไม่ใช่ราคา ผมเห็นรูปที่คุณโพส มีลูกศรชี้ไปที่กราฟราคาอ่ะ  ถ้าอยากได้ค่า ณ จุดตัดเลยคงเป็นไปไม่เพราะ sto มันคำนวณจากหน้ากลับไปหลังมันเกิดการตัดกันแล้ว อินมันถึงแสดงจุดตัดให้เราเห็น แต่หาค่าได้ใกล้เคียงที่จุดคือ การเอาค่าที่มันตัดกันแล้ว ณ จุดแรกมาเฉลี่ย ครับ

int check (double stosignal ,double stomain)
{   
     static int way     =0;
     
 
     
     if(stosignal > stomain)
     {
        way=1;
     
     }
   
    if(stosignal < stomain)
     {
        way=2;
     
     }
     if(way==2)
     {
        lastway=2;
     
     }
     
     if(way == 1 && lastway!= way)
     {
        lastway = 1;
       
        if( ( one == 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            one=(stosignal+stomain)/2;
       
           return(0);
       
        }
       
       if( ( one != 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            two=(stosignal+stomain)/2;
           
            return(0);
       
        }
       
         if( ( one != 0) &&   (two != 0)   &&   (three== 0)    )
       
        {
            three=(stosignal+stomain)/2;
           
            return(0);
       
        }
       
     
       
           
     }
 
       return (0);

}

Jummum

  • Newbie
  • *
  • Posts: 29
Re: รบกวนแอดมินหน่อยครับ
« Reply #18 on: กันยายน 05, 2010, 12:55:14 pm »
ขอบคุณครับ ได้แล้วๆแต่ไม่ค่อยดีเลยครับ
จะลองเอาค่าตัดลงมาคิดด้วยดู
ผมเขียนแบบนี้ดูปรากดว่าจำแต่ค่าตัดขึ้น
คิดเองนะครับไม่รู้ถูกรึป่าวครับ(คิดว่าผิดเพราะไม่อ่านค่า)

int check (double stosignal ,double stomain)
{   
     static int way     =0;
     if(stosignal < stomain)
     {
        way=1;
     }
     if(way==1)
     {
        lastway2=1;
     }
     if(stosignal > stomain)
     {
        way=2;
     }

//-----------------four five six-----------------------------------
     if(way == 2 && lastway2!= way)
     {
        lastway2 = 1;
        if( ( four == 0) &&   (five == 0)   &&   (six== 0)    )
        {
            four=stosignal;
           return(0);
        }
       if( ( four != 0) &&   (five == 0)   &&   (six== 0)    )
       
        {
            five=stosignal;
            return(0);
        }
         if( ( four != 0) &&   (five != 0)   &&   (six== 0)    )
       
        {
            six=stosignal;
            return(0);
        }
     }
//-----------------one two three-----------------------------------

     if(way==2)
     {
        lastway=2;
     }
     if(way == 1 && lastway!= way)
     {
        lastway = 1;
        if( ( one == 0) &&   (two == 0)   &&   (three== 0)    )
        {
            one=stosignal;
           return(0);
        }
       if( ( one != 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            two=stosignal;
            return(0);
        }
         if( ( one != 0) &&   (two != 0)   &&   (three== 0)    )
       
        {
            three=stosignal;
            return(0);
        }
     }
       return (0);

}

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

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: รบกวนแอดมินหน่อยครับ
« Reply #19 on: กันยายน 05, 2010, 01:03:55 pm »
จำแต่ตัดขึ้นทุกต้องครับ เพราะตัวนี้ผมเขียนตามรูปที่คุณโพสไว  ขึ้น 3 ครั้งเปิด buy ผมว่าต้องรอการทำงานในตลาดจริงค่อยพัฒนาต่อครับ  จากที่ดู code มันน่าจะผิดตรงเงื่อนไขการแยกตัดขึ้นหรือตัดลงครับ
« Last Edit: กันยายน 05, 2010, 01:07:41 pm by admin »

Jummum

  • Newbie
  • *
  • Posts: 29
Re: รบกวนแอดมินหน่อยครับ
« Reply #20 on: กันยายน 05, 2010, 01:23:51 pm »
คือที่คุณAdmin เขียนให้ก็ได้ค่าตัดขึ้นแล้ว
แต่อยากจำค่าตัดลงด้วยพอทำได้มั๊ยครับ
พยายามเขียนเพิ่มเองให้จำค่าตัดลง
แต่มันไม่ยอมจำเลยเอามาโพสขอคำแนะนำว่าเขียนผิดยังไง
หรือต้องแก้ยังไงให้รบกวนด้วยครับ
« Last Edit: กันยายน 05, 2010, 01:42:16 pm by Jummum »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
Re: รบกวนแอดมินหน่อยครับ
« Reply #21 on: กันยายน 05, 2010, 10:52:56 pm »
แบบนี้น่าจะได้แล้วนะลองเอาทดสอบดูครับ


static double one =0;
static double two = 0;
static double three = 0;
static int lastway =0;
static double four =0;
static double five = 0;
static double six = 0;
static int lastway2 =0;

int check (double stosignal ,double stomain)
{   
     static int way     =0;
     
 
     
     if(stosignal > stomain)
     {
        way=1;
     
     }
   
    if(stosignal < stomain)
     {
        way=2;
     
     }
     if(way==2)
     {
        lastway=2;
     
     }
        if(way==1)
     {
        lastway2=1;
     
     }
     
     if(way == 1 && lastway!= way)
     {
        lastway = 1;
       
        if( ( one == 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            one=(stosignal+stomain)/2;
       
           return(0);
       
        }
       
       if( ( one != 0) &&   (two == 0)   &&   (three== 0)    )
       
        {
            two=(stosignal+stomain)/2;
           
            return(0);
       
        }
       
         if( ( one != 0) &&   (two != 0)   &&   (three== 0)    )
       
        {
            three=(stosignal+stomain)/2;
           
            return(0);
       
        }
           
           
     }
     
     
     if(way == 2 && lastway2!= way)
     {
        lastway2 = 2;
       
        if( ( four == 0) &&   (five == 0)   &&   (six== 0)    )
       
        {
            four=(stosignal+stomain)/2;
       
           return(0);
       
        }
       
       if( ( four != 0) &&   (five == 0)   &&   (six== 0)    )
       
        {
            five=(stosignal+stomain)/2;
           
            return(0);
       
        }
       
         if( ( four != 0) &&   (five != 0)   &&   (six== 0)    )
       
        {
            six=(stosignal+stomain)/2;
           
            return(0);
       
        }
           
           
     }
     
     
 
       return (0);

}

Jummum

  • Newbie
  • *
  • Posts: 29
Re: รบกวนแอดมินหน่อยครับ
« Reply #22 on: กันยายน 08, 2010, 10:06:40 pm »
ขอบคุณมากเลยครับ