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

ขอถามหน่อย ครับ แบบนี้ต้องใช้คำสั่งไหนเขียน ครับ

  • 6 replies
  • 1,967 views
*

aeiou

  • 15
คือ ผมได้ อินดิเคเตอร์มาตัวหนึ่ง มันจะสร้างเส้น trendlind ตามรูป ผม อยากรู้ว่าต้องเขียน EA ยังไงให้ มันหาว่า ตอนนี้ราคาอยู่ใกล้เส้น หมายเลข 2 แล้วให้มันสร้าง Pending order buy ที่เส้นหมายเลข 1 และ สร้าง Pending order sell ที่เส้นหมายเลข 3 ครับ

*

iRuler

  • 1,282
ดับเบิ้ลคลิกที่เส้นดูครับ ว่ามันชื่ออะไร จากนั้นสามารถดึงราคาจากมันได้โดย

string name="ชื่อเส้นที่2";
double price = ObjectGetDouble(0,name,OBJPROP_PRICE,0);

เมื่อได้ราคาของเส้นที่ 2 แล้วก็เอามาเปรียบเทียบกับ Bid หรือ Ask
ถ้าเข้าเงื่อนไขก็ เปิด order pending ตามราคาเส้น 1 เส้น 3


(TH)**

*

aeiou

  • 15
แล้วถ้าเราไม่รู้ name ละครับ เพราะมันสร้างหลายเส้นมาก ครับ

*

iRuler

  • 1,282
ต้องดึง buffer จาก indicator เอาครับ ถ้าเขาเขียนไว้นะ


(TH)**

อ้างจาก: aeiou ที่ 04, ธันวาคม  2020, 11:19:34 AM
แล้วถ้าเราไม่รู้ name ละครับ เพราะมันสร้างหลายเส้นมาก ครับ

มี code หรือไฟล์ mql4  หรือเปล่าครับ ถ้ามีก็ให้ท่าน iRuler ดู


ลองเปิด View Data Windows ดูว่ามีข้อมูลของเส้น ที่ขึ้นมาใหม

หรืออัพโหลดไฟล์ indicator มาให้ท่าน iruler ช่วยดูค่า buffer ให้ก็ได้ครับ

ลองใช้ iCustom เรียกใช้ indicator แล้ว ดึงค่าของ buffer มาโชวดูครัยบ ถ้ามีก็โชคดี ดึงเอามาใช้ได้

ถ้าไม่มี buffer ก็ต้องเขียนอีเอ ให้ผ่านค่าบน chart ว่ามีเส้น line กี่เส้น แล้วชื่ออะไรดูครับ ได้ค่ามาแล้ว น่าจะเอาไปใช้้ต่อได้ครับ

ปกติแล้วจะเป็นชื่อเดิมๆ นะครับ

*

aeiou

  • 15
ที่เค้าเขียนมา ครับ ถ้าไม่หาค่าของเส้น เรา ใช้วิธีไหนได้บางมั้ย ครับ ให้ เช็คราคาว่าชนกันค่าที่สร้างไว้

#property copyright " [email protected] "
#property link      " http://multiexperts.ru/ "

#property indicator_chart_window

extern int    Months = 120;
extern color  color1_High  = RoyalBlue;
extern color  color1_Low   = Crimson;
extern int    style1  = 0;
extern int    width = 1;
extern bool   ray    = True;


string lineLow[300];
string lineHigh[300];
double dLow[300];
double dHigh[300];
double dTime[300];
//+------------------------------------------------------------------+
int start()
  {
//----

    for (int i=0; i<Months; i++) {
   
    dLow = iLow(Symbol(),43200,i);
    dHigh = iHigh(Symbol(),43200,i);
    dTime = iTime(Symbol(),43200,i);
   
    datetime Ts = Time[0]+Period()*40*(WindowBarsPerChart());
    int YY=TimeYear(dTime);   
    int MN=TimeMonth(dTime);
 
    lineLow = "Level.Low Date "+MN+" . "+YY;
    lineHigh= "Level.High Date "+MN+" . "+YY;
   
    if(ObjectFind(lineLow)!=0)
    ObjectDelete(lineLow);
    if(ObjectFind(lineLow)<0){
    ObjectCreate(lineLow, OBJ_TREND, 0, Ts, dLow, Time[10],dLow);
    ObjectSet(lineLow, OBJPROP_STYLE, style1);
    ObjectSet(lineLow, OBJPROP_WIDTH, width);
    ObjectSet(lineLow, OBJPROP_COLOR, color1_Low);
    ObjectSet(lineLow, OBJPROP_BACK,  true);
    ObjectSet(lineLow, OBJPROP_RAY,   ray); // ray
    ObjectSetText(lineLow,"",10);
   } else {
      ObjectMove(lineLow, 1, Time[10],dLow);
      ObjectMove(lineLow, 0, Ts,dLow);
      ObjectSetText(lineLow,"",10);
   }
   
   
    if(ObjectFind(lineHigh)!=0)
    ObjectDelete(lineHigh);
    if(ObjectFind(lineHigh)<0){
    ObjectCreate(lineHigh, OBJ_TREND, 0, Ts, dHigh, Time[10],dHigh);
    ObjectSet(lineHigh, OBJPROP_STYLE, style1);
    ObjectSet(lineHigh, OBJPROP_WIDTH, width);
    ObjectSet(lineHigh, OBJPROP_COLOR, color1_High);
    ObjectSet(lineHigh, OBJPROP_BACK,  true);
    ObjectSet(lineHigh, OBJPROP_RAY,   ray); // ray
    ObjectSetText(lineHigh,"",10); 
   } else {
      ObjectMove(lineHigh, 1,Time[10],dHigh);
      ObjectMove(lineHigh, 0,Ts,dHigh);
      ObjectSetText(lineHigh,"",10);
   }
}
//----
   return(0);
}
//+------------------------------------------------------------------+
int deinit()
  {
  //----
    for (int i=0; i<Months; i++) {
    dTime = iTime(Symbol(),43200,i);
    int YY=TimeYear(dTime);
    int MN=TimeMonth(dTime);
    lineLow = "Level.Low Date "+MN+" . "+YY;
    lineHigh= "Level.High Date"+MN+" . "+YY;
   
    ObjectDelete(lineLow);
    ObjectDelete(lineHigh);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


ใช่อีเอนี้หรือเปล่าครับ

JS.Levels.V2.mq4

ดูแล้วน้่าจะต้องลูปเช็คหาชื่อเอานะครับแล้วเก็บแต่ละราคาไว้ แล้วก็เช็คว่าราคามันที่ตั้งไว้อัตโนมัติแต่ละอัน เท่ากับราคาจริงในเวลานี้หรือเปล่าครับ

ประมาณนี้มั้ง