กองทุน SPDR GOLD SHARES
ถือทองก่อนหน้า
ถือทองล่าสุด
0.00
*หน่วยตัน / ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
สถิติกองทุน SPDR
ราคาทองคำแท่ง 96.5%
ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
ครั้งที่
ราคาก่อนหน้า
ราคาล่าสุด
0
(หน่วย บาท*) / อัปเดตล่าสุดเมื่อวันที่ 13 ก.ค. 2566 เวลา 13:04 น.
สถิติราคาทองคำ ไทย

ขอ code ระบบ MM -Money Management หน่อยครับ

  • 5 replies
  • 2,500 views
ขอ code ระบบ MM -Money Management หน่อยครับ
« เมื่อ: 25, ธันวาคม 2018, 10:51:09 PM »
รบกวนพอจะมีชุด code สำเร็จของระบบ Money Management ที่เอาไปใส่ไว้ในอีเอ แล้วก็เอาไปแทนค่า Lots ให้อีเอคำนวน lot ให้แทนได้ใหมครับ เช่นใส่ 1% ไว้แทนกำหนด 0.01

*

admin

  • 80,626
Re: ขอ code ระบบ MM -Money Management หน่อยครับ
« ตอบกลับ #1 เมื่อ: 25, ธันวาคม 2018, 11:30:30 PM »
เดี๋ยว รอ IT เรามาตอบให้นะครับ
(TH)**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

*

iRuler

  • 1,282
Re: ขอ code ระบบ MM -Money Management หน่อยครับ
« ตอบกลับ #2 เมื่อ: 25, ธันวาคม 2018, 11:47:22 PM »
มันต้องระบุ ระยะ sl ด้วยครับ จะได้ขนาด lot ที่ต้องใช้

โค๊ด [Select]
double GetLot(double open,double sl,double riskPerLevel)
  {
   double stopLossPips=0.0;
   if(CheckDoubles(open,">",sl))
      stopLossPips=open-sl;
   else if(CheckDoubles(open,"<",sl))
      stopLossPips=sl-open;
   else return 0.0;

   double p = riskPerLevel/stopLossPips;
   double l = NormalizeDouble((p/MarketInfo(Symbol(),MODE_TICKVALUE))*Point,2);

   return(l);
  }


โค๊ด [Select]
bool CheckDoubles(double a,string check,double b)
  {
   if(check==">")
     {
      if(a - b > Point / 2.0)return(1);else return (0);
        }else if(check=="<"){
      if(b - a > Point / 2.0)return(1);else return (0);
        }else if(check==">="){
      if(a - b > -Point)return(1);else return (0);
        }if(check=="<="){
      if(b - a > -Point)return(1);else return (0);
        }else if(check=="!="){
      if(MathAbs(a - b) > Point / 2)return(1);else return (0);
        }else {

      Print("Sorry you've entered a wrong check value");
     }
   return (0);
  }


Usage:

โค๊ด [Select]
double risk_percent = 5;
double risk_money=NormalizeDouble(((double)risk_percent/100.0)*AccountEquity(),2);
double lot=GetLot(order_open_price, order_sl_price, risk_money);


order_open_price = ราคาที่จะเปิดออร์เดอร์
order_sl_price = ราคา stoploss


Re: ขอ code ระบบ MM -Money Management หน่อยครับ
« ตอบกลับ #3 เมื่อ: 26, ธันวาคม 2018, 05:51:21 PM »
ขอบคุณมากครับท่าน iRuler

รบกวนอีกหน่อยครับ

มี code ที่เอาใส่ดักไว้ด้านบน code ประมาณว่า ให้มันเทรดเพียงแค่ order เดียวมีบ้างใหมครับ

คือผมจะเอาอีเอใส่ไว้หลายคู่เงินทิ้งไว้ แต่จะไห้มันเทรดเพียงแค่คู่เงินเดียวครับ ไม่ให้ overtrad หลาย order ถ้ามี order ทำงานเทรดอยู่แล้ว ก็ไม่ต้องเทรดประมาณนี้ครับครับ

Re: ขอ code ระบบ MM -Money Management หน่อยครับ
« ตอบกลับ #4 เมื่อ: 26, ธันวาคม 2018, 06:45:14 PM »

ขอบคุณมากครับ ผมลองใช้แล้ว เวลาคอมไพลมันขึ้น  expression not boolean    ตรงบรรทัด  return(1)  ไม่เป็นไรครับ ผมไม่ใช่โปรแกรมเมอร์ แค่อยากลองแก้ไข EA ดูครับ

ถ้าเราใช้ FxPro Quant ก็มีระบบ MM ให้ใช้ใช่ใหมครับ น่าจะง่ายขึ้นหน่อย


*

iRuler

  • 1,282
Re: ขอ code ระบบ MM -Money Management หน่อยครับ
« ตอบกลับ #5 เมื่อ: 02, มกราคม 2019, 03:24:35 PM »
อ้างจาก: forcebewithyou ที่ 26, ธันวาคม  2018, 06:45:14 PM

ขอบคุณมากครับ ผมลองใช้แล้ว เวลาคอมไพลมันขึ้น  expression not boolean    ตรงบรรทัด  return(1)  ไม่เป็นไรครับ ผมไม่ใช่โปรแกรมเมอร์ แค่อยากลองแก้ไข EA ดูครับ

ถ้าเราใช้ FxPro Quant ก็มีระบบ MM ให้ใช้ใช่ใหมครับ น่าจะง่ายขึ้นหน่อย



เปลี่ยน return (0); เป็น return false; และเปลี่ยน return (1); เป็น return true;