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

เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ

  • 8 replies
  • 2,375 views
ถ้าหากเราต้องการรับค่า ตามในภาพที่แนบมา เราสามารถเขียนโค๊ดได้อย่างไรบ้างครับ

นี่คือ ลิงค์ url ที่ต้องการดึงค่าครับ

https://traderider.com/forex/spdr-%E0%B8%81%E0%B8%AD%E0%B8%87%E0%B8%97%E0%B8%B8%E0%B8%99%E0%B8%97%E0%B8%AD%E0%B8%87%E0%B8%84%E0%B8%B3%E0%B9%81%E0%B8%97%E0%B9%88%E0%B8%87/

*

admin

  • 80,664
Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #1 เมื่อ: 22, กรกฎาคม 2020, 06:45:27 PM »
รอท่าน IRueler มาตอบ นะครับแต่ถ้าจะทำ EA ระบบ SPDR Admin กำลังจะปล่อยออกมาแล้ว ครับ เทส เรียบร้อย
**Hea** **Hea**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #2 เมื่อ: 22, กรกฎาคม 2020, 07:05:53 PM »
อ้างจาก: admin ที่ 22, กรกฎาคม  2020, 06:45:27 PM
รอท่าน IRueler มาตอบ นะครับแต่ถ้าจะทำ EA ระบบ SPDR Admin กำลังจะปล่อยออกมาแล้ว ครับ เทส เรียบร้อย
**Hea** **Hea**

ไอเดียดีมากเลยครับท่าน






*

iRuler

  • 1,282
Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #3 เมื่อ: 22, กรกฎาคม 2020, 07:08:24 PM »
อันนี้ที่ผมใช้ประจำนะครับ

โค๊ด [Select]
#import  "Wininet.dll"
int InternetOpenW(string,int,string,string,int);
int InternetConnectW(int,string,int,string,string,int,int,int);
int HttpOpenRequestW(int,string,string,int,string,int,string,int);
int InternetOpenUrlW(int,string,string,int,int,int);
int InternetReadFile(int,uchar &arr[],int,int &OneInt[]);
int InternetCloseHandle(int);
#import

string httpGET(string url)
  {
   int HttpOpen=InternetOpenW(" ",0," "," ",0);
   int HttpConnect = InternetConnectW(HttpOpen, "", 80, "", "", 3, 0, 1);
   int HttpRequest = InternetOpenUrlW(HttpOpen, url, NULL, 0, 0, 0);

   int read[1];
   uchar Buffer[100];
   string message="";
   while(true)
     {
      InternetReadFile(HttpRequest,Buffer,sizeof(Buffer),read);
      if(read[0]>0)
        {
         string strThisRead=CharArrayToString(Buffer,0,read[0],CP_UTF8);
         message=message+strThisRead;
        }
      else
        {
         break;
        }
     }

   if(HttpRequest>0) InternetCloseHandle(HttpRequest);
   if(HttpConnect>0) InternetCloseHandle(HttpConnect);
   if(HttpOpen>0) InternetCloseHandle(HttpOpen);

   return message;
  }


เรียกใช้โดย

โค๊ด [Select]
string contents=httpGET("https://google.com");

จากนั้นก็เอามา substring เอาครับ

(TH)**

Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #4 เมื่อ: 23, กรกฎาคม 2020, 02:34:15 PM »
อ้างจาก: iRuler ที่ 22, กรกฎาคม  2020, 07:08:24 PM
อันนี้ที่ผมใช้ประจำนะครับ

โค๊ด [Select]
#import  "Wininet.dll"
int InternetOpenW(string,int,string,string,int);
int InternetConnectW(int,string,int,string,string,int,int,int);
int HttpOpenRequestW(int,string,string,int,string,int,string,int);
int InternetOpenUrlW(int,string,string,int,int,int);
int InternetReadFile(int,uchar &arr[],int,int &OneInt[]);
int InternetCloseHandle(int);
#import

string httpGET(string url)
  {
   int HttpOpen=InternetOpenW(" ",0," "," ",0);
   int HttpConnect = InternetConnectW(HttpOpen, "", 80, "", "", 3, 0, 1);
   int HttpRequest = InternetOpenUrlW(HttpOpen, url, NULL, 0, 0, 0);

   int read[1];
   uchar Buffer[100];
   string message="";
   while(true)
     {
      InternetReadFile(HttpRequest,Buffer,sizeof(Buffer),read);
      if(read[0]>0)
        {
         string strThisRead=CharArrayToString(Buffer,0,read[0],CP_UTF8);
         message=message+strThisRead;
        }
      else
        {
         break;
        }
     }

   if(HttpRequest>0) InternetCloseHandle(HttpRequest);
   if(HttpConnect>0) InternetCloseHandle(HttpConnect);
   if(HttpOpen>0) InternetCloseHandle(HttpOpen);

   return message;
  }


เรียกใช้โดย

โค๊ด [Select]
string contents=httpGET("https://google.com");

จากนั้นก็เอามา substring เอาครับ

(TH)**

ขอบคุณท่านมากมากครับ แต่สงสัยงานนี้เกินกำลังผมไปเยอะครับ มันยุ่งยากจริง ๆ ผมลองคอมเม้นท์ออกมาทางหน้าจอ มีอะไรเต็มไปหมด ไม่รู้จะเรียกอะไรมาใช้ได้บ้างครับ  x*/2 x*/2

ขอบพระคุณท่านมากมากนะครับ ได้เพิ่มเติมความรู้ด้วยเลยครับ

*

iRuler

  • 1,282
Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #5 เมื่อ: 24, กรกฎาคม 2020, 08:19:26 AM »
มันคือ html code ครับ ภาษาที่ใช้สร้างหน้าเว็บ

(TH)**

Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #6 เมื่อ: 24, กรกฎาคม 2020, 12:43:28 PM »

ดึงมาเปล่าๆ ไม่ได้ครับ

ต้องดึงมาแล้ว กรอกเอาข้อมูลอีกรอบครับ

ดึงข้อมูลจากเว็บเขาเรียกว่า web scraping ครับ หาหนังสือมาอ่านได้ครับ มีเยอะมาก

บางคนไม่ถนัด MQL4 หรือ MQL5  ก็ต้องใช้วิธีทำ DLL เอาครับ

ถ้าถนัดเขียนโปรแกรม C++ หรือ C#  ก็ทำโปรแกรม ไปดึงเอาเว็บมาแล้วค้นหาจุดที่มันเก็บข้อมูล แล้วก็เอาค่ามาใช้ แล้วก็ส่งออกมา
เวลาใช้ก็ให้ MQL4/MQL5  import dll มาใช้งาน พอเรียกที ก็ไปดึงเอาข้อมูลมาก แล้วส่งค่าออกมาให้ (หรือเขียนบันทึกไว้ใน text ไฟล์)


การดึงข้อมูลจากเว็บตรงๆ ที่ไม่ใช่ API ต้องระวังเรื่องเว็บเเปลี่ยนการแสดงผลหน้าด้วย เพราะข้อมูลที่ดูดมาจะเปลี่ยน ต้องมาแก้ไขตาม
อันนี้จ้องเขียนดักไว้วว่า ถ้าไม่มีข้อมูลหรือ error  ก็อีเมลแจ้งเตือนเจ้าของด้วย

วิธีอื่นๆ ก็ต้องขอให้แอด ทำเป็น web api มาให้ดึงค่าไปใช้ได้ครับ
ประมาณว่า มี URL ให้ดึงข้อมูลได้เลยไม่ต้องมา scrap

web api  อย่าเป็น json เพราะดึงมาใช้ยากสำหรับคนไม่ใช่โปรแกรมเมอร์
web api  ง่ายๆ แบบค่าเดียว  หรือ แบบ text CSV  ก็น่าจะเอามาใช้ง่ายกว่าใน MQL4 MQL5

ถ้ามีคนใช้เยอะลองทำบริการ member ที่ต่อ BI อยู่โดยการแจก password ให้ใช้ ก็ได้ครับ

Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #7 เมื่อ: 24, กรกฎาคม 2020, 02:14:24 PM »
 (TH)** (TH)** (TH)**
ขอบคุณท่านมากมากครับ ได้รับความรู้เพิ่มเติมเลยครับท่าน

อ้างจาก: forcebewithyou ที่ 24, กรกฎาคม  2020, 12:43:28 PM

ดึงมาเปล่าๆ ไม่ได้ครับ

ต้องดึงมาแล้ว กรอกเอาข้อมูลอีกรอบครับ

ดึงข้อมูลจากเว็บเขาเรียกว่า web scraping ครับ หาหนังสือมาอ่านได้ครับ มีเยอะมาก

บางคนไม่ถนัด MQL4 หรือ MQL5  ก็ต้องใช้วิธีทำ DLL เอาครับ

ถ้าถนัดเขียนโปรแกรม C++ หรือ C#  ก็ทำโปรแกรม ไปดึงเอาเว็บมาแล้วค้นหาจุดที่มันเก็บข้อมูล แล้วก็เอาค่ามาใช้ แล้วก็ส่งออกมา
เวลาใช้ก็ให้ MQL4/MQL5  import dll มาใช้งาน พอเรียกที ก็ไปดึงเอาข้อมูลมาก แล้วส่งค่าออกมาให้ (หรือเขียนบันทึกไว้ใน text ไฟล์)


การดึงข้อมูลจากเว็บตรงๆ ที่ไม่ใช่ API ต้องระวังเรื่องเว็บเเปลี่ยนการแสดงผลหน้าด้วย เพราะข้อมูลที่ดูดมาจะเปลี่ยน ต้องมาแก้ไขตาม
อันนี้จ้องเขียนดักไว้วว่า ถ้าไม่มีข้อมูลหรือ error  ก็อีเมลแจ้งเตือนเจ้าของด้วย

วิธีอื่นๆ ก็ต้องขอให้แอด ทำเป็น web api มาให้ดึงค่าไปใช้ได้ครับ
ประมาณว่า มี URL ให้ดึงข้อมูลได้เลยไม่ต้องมา scrap

web api  อย่าเป็น json เพราะดึงมาใช้ยากสำหรับคนไม่ใช่โปรแกรมเมอร์
web api  ง่ายๆ แบบค่าเดียว  หรือ แบบ text CSV  ก็น่าจะเอามาใช้ง่ายกว่าใน MQL4 MQL5

ถ้ามีคนใช้เยอะลองทำบริการ member ที่ต่อ BI อยู่โดยการแจก password ให้ใช้ ก็ได้ครับ

*

iRuler

  • 1,282
Re: เราสามารถรับค่า จากเว็บ ได้อย่างไรครับ
« ตอบกลับ #8 เมื่อ: 24, กรกฎาคม 2020, 07:00:15 PM »
api ซื้อขายของ spdr ผมไว้แล้วครับ เพราะใช้กับ EA อยู่แล้วแต่ไม่ได้เปิดให้คนภายนอกใช้
รอนโยบายจากทางท่านแอดมินก่อนครับ พอถึงตอนนั้น ผมต้องเพิ่ม rate limite และ authentication ก่อน
ตอนนี้ยังไม่เพิ่มเพราะใช้คนเดียว  ))/*

(TH)**