Open Forex4you Account

Server รัน EA 1000 / ปี

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

Author Topic: ขอบคุณครับ คอมไพล์ได้แล้ว  (Read 18247 times)

Big303

  • Newbie
  • *
  • Posts: 11
ขอบคุณครับ คอมไพล์ได้แล้ว
« on: มกราคม 13, 2012, 03:26:31 pm »
ช่วยดูทีนะครับ ครั้งแรกจริง ๆ = =

ผิดตรงไหนช่วยบอกทีนะครับ


ขอบคุณครับ
« Last Edit: มกราคม 20, 2012, 11:17:50 pm by Big303 »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ตัวนี้สร้างจากระบบ ขอข้อมูลนิดหนึ่งครับ ได้กรอกอะไรไปมั้งครับ ช่วย capture หน้าจอตอนกรอกข้อมูลแล้ว post บนเวบหน่อยครับเพื่อมันมี bug จะได้ แก้ bug ให้คนอื่นไวใช่ต่อครับ แต่ตัวนี้ค่า var4 คุณต้องการอะไรอ่ะครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ผมลองสร้างตามที่คุณโพสไวก็ทำงานถูกต้องที่ ผมขอถามต่อครับ ตรง var1>var4 และ var1< var4 ตรงนี้เพิ่มเองใช้ไหมครับ เพราะ ระบบจะเปรียบเทียบได้แค่ 2 เงื่อนไขครับ แล้วมีส่วนไหนที่เพิ่มเติมเองอีกครับ บอกผมนิดหนึ่งครับ

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
extern double lot =0.1;
extern double sl =10;
extern double tp =2.5;
extern double trailing =0;
extern int MaxOrder =0;

int start()
  {   

   double var1 = iStochastic(NULL,0,3,2,3,0,0,1,0);
   double var2 = iRSI(NULL,0,7,0,0);
   double var3 = iCCI(NULL,0,14,0,0);
   double var4 = iOsMA(NULL,0,12,26,9,0,0);
   


     if(( var2 > var4 ) && ( var3 > var4 ) && ( var1 > var4 )){
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,sl,tp,"EA Creator",123,0,Green);
      OrderSend(Symbol(),OP_SELL,lot,Bid,3,sl,tp,"EA Creator",123,0,Green);
 }
     if(( var2 < var4 ) && ( var3 < var4) && ( var1 < var4 ) ){
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,sl,tp,"EA Creator",123,0,Green);
      OrderSend(Symbol(),OP_BUY,lot,Ask,3,sl,tp,"EA Creator",123,0,Green);
 }
return(0) ;
 }


     

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ที่ไม่เปิดตอบไม่ได้ครับต้องเอาค่า log ไฟลืมาดูถึงบอกได้ เรื่อง backtest ไม่จำเป้นครับของให้มี อินดิเคเตอร์อยู่ ใน mt4 ก็พอครับ

Big303

  • Newbie
  • *
  • Posts: 11
ไฟล์ log ที่เป็นชื่อของ ea หรือเปล่าครับ

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
SL กับ TP ใช้ไม่ได้ครับ

กรณี buy ต้องเปลี่ยนเป็น Ask-sl*Point  , Ask+tp*Point
กรณี sell ต้องเปลี่ยนเป็น Bid+sl*Point  , Bid-tp*Point

เพิ่ม init ด้วย เพื่อปรับทศนิยม 5 ตำแหน่ง

void init()
{
if ( Digits==3 || Digits==5 ) { sl=sl*10; tp=tp*10; }

}

Big303

  • Newbie
  • *
  • Posts: 11
SL กับ TP ใช้ไม่ได้ครับ

กรณี buy ต้องเปลี่ยนเป็น Ask-sl*Point  , Ask+tp*Point <<<<
กรณี sell ต้องเปลี่ยนเป็น Bid+sl*Point  , Bid-tp*Point

เพิ่ม init ด้วย เพื่อปรับทศนิยม 5 ตำแหน่ง

void init()
{
if ( Digits==3 || Digits==5 ) { sl=sl*10; tp=tp*10; }

}



คอมไพล์ error แบบนี้ครับ


« Last Edit: มกราคม 15, 2012, 11:50:12 am by Big303 »

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
อย่าเอา init ไปคร่อมครับ เขียนเหมือนที่ผมเขียนให้

D_Diamond

  • Hero Member
  • *****
  • Posts: 673
    • Expert Forex Trading
init เป็นฟังก์ชั่น ที่อีเอจะทำงานครั้งแรก  และครั้งเดียว หลังจากนั้นจะทำงานที่ start ตลอดทุกครั้งราคาขยับครับ
และเมื่อเราเอาอีเอออกมันจะไปทำงานที่ deinit

ในกรณีนี้ใช้ init เพื่อตั้งค่า sl และ tp ใหม่ สำหรับบัญชีทศนิยม 5 หลัก

ทำไมถึงไม่ตั้งใน start เพราะ start มันทำงานตลอดเวลา ถ้าตั้งในนี้มันก็จะคูณ10ไปเรื่อยๆ แต่ init ทำงานครั้งเดียวก็จะคูณ10ครั้งเดียว จาก sl 10 เป็น sl 100

Big303

  • Newbie
  • *
  • Posts: 11
init เป็นฟังก์ชั่น ที่อีเอจะทำงานครั้งแรก  และครั้งเดียว หลังจากนั้นจะทำงานที่ start ตลอดทุกครั้งราคาขยับครับ
และเมื่อเราเอาอีเอออกมันจะไปทำงานที่ deinit

ในกรณีนี้ใช้ init เพื่อตั้งค่า sl และ tp ใหม่ สำหรับบัญชีทศนิยม 5 หลัก

ทำไมถึงไม่ตั้งใน start เพราะ start มันทำงานตลอดเวลา ถ้าตั้งในนี้มันก็จะคูณ10ไปเรื่อยๆ แต่ init ทำงานครั้งเดียวก็จะคูณ10ครั้งเดียว จาก sl 10 เป็น sl 100
อ่อ เก็ทละครับ ตอนนี้เข้าออเดอร์ได้แล้ว ขอบคุณมากครับ ขอตัวไปแก้ก่อน อิอิ