Sponsored Ads

วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2559

ความสำคัญของการประกาศตัวแปร

Solution. Let us denote the number of John's pencils as variable A and the number of Pete's pencils as variable B, whereas the result will be denoted as C.

The answer will be: С = А + В

ตัวอย่าง 1.  หาผลรวมของดินสอของ John และ Peter

โดย ดินสอของ John แทนตัวแปร A
        ดินสอของ Pete แทนด้วยตัวแปน B
        ผลรวมของดินสอน แทนด้วยตัวแปร C

เขียนเป็นสมการ C = A+B

ลองเขียนเป็น Code อย่างง่าย

   double A = 2.0;                       // The number of John's pencils
   double B = 3.0;                       // The number of Pete's pencils
   double C = A + B;                     // total number 


ตัวอย่างที่ 2.หาผลต่างระหว่างดินสอของทั้งสองคน

   double A = 2.0;                       // The number of John's pencils
   double B = 3.0;                       // The number of Pete's pencils
   double C = B - A;                     // The difference between two real numbers


หากเราต้องการนำตัวแปรมา คูณ หรือหารกันก็สามารถทำได้ 


   double C = B * A;                     // Multiplication of two real numbers
   double C = B / A;                     // Division of two real numbers

ข้อควรระวังคือ เรื่องการประกาศชนิดตัวแปร หากเราประกาศชนิดตัวแปรผิด จะส่งผลให้คำตอบผิดพลาดได้ 

เช่น 
   int X = 2;                           // Integer
   int Y = 3;                           // Integer
   int Z = Y - X;                       // 3-2 = 1 
   int Z = Y * X;                       // 3*2=6
   int Z = Y / X;                       // 3/2 = 1 เนื่องจากประกาศชนิดตัวแปรเป็นจำนวนเต็ม

ตัวอย่าง ตัวแปรประเภท string  หรือตัวแปรตัวอักษร  ถ้านำมาบวกกัน จะได้ไหม ???

 string W1  = "Arctic";                       // String 1
 string W2  = "Hairdressing Saloon";          // String 2
 string Ans = W1 + W2;                        // Sum of strings

ผลลัพธ์  ArcticHairdressing Saloon 
** ตัวแปรอักษรถ้านำมาบวกกัน หมายถึง นำ ข้อความมาชนกันนั่นเอง 

แต่ถ้าเอามา ลบ คูณ หรือ หาร ล่ะ ???
 string Ans= W1 - W2;                        // Not allowed
 string Ans= W1 * W2;                        // Not allowed
 string Ans= W1 / W2;                        // Not allowed
*** ถ้าเอาตัวแปรตัวอักษรมาทำการ ลบ คูณ หรือ หาร จะเกิด Error นะครับ จะเอามาเขียนในโปรแกรมไม่ได้ 
สิ่งสำคัญที่ควรระวัง คือ เรื่องการประกาศชนิดตัวแปร เพราะมันส่งผลต่อคำตอบที่ต้องการคำนวณต่อไปครับ
ตัวอย่าง จงหาผลรวมของ ค่าต่อไปนี้
   double A = 2.0;                      // The number of John's pencils
   int    Y = 3;                        // The number of Pete's passages
   int    F = A + Y;                    // Total number
คำตอบ ค่า F = 2.0 + 3 = 5   ตัวแปร F จะเป็นค่าจำนวนเต็ม
ถ้าเปลี่ยนเป็นประกาศตัวแปร เป็น double 
   double A = 2.0;                   // The number of John's pencils
   int    Y = 3;                     // The number of Pete's passages
   double F = A + Y;                 // Total number
คำตอบค่า F = 2.0 +3 = 5.0 เพราะตัวแปร F มีชนิดตัวแปรเป็น double หรือจำนวนจริงนั่นเอง 

ถ้าเราเอาตัวแปร string มาบวกกับ ตัวแปรที่เป็นตัวเลขล่ะ 
  string W1  = "Arctic";             // String 1
   double A   = 2;                    // Number of John's pencils
   string Sum = W1 + A;               // Implied transformation to the right
คำตอบ Sum คือ Arctic2.00000000 เนื่องจาก ตัวแปร Sum เป็นตัวแปรอักษร จึงมองว่า A เป็นอักษร แต่ถ้าเปลี่ยนปะกาศตัวแปร Sum เป็น double 
   string W1 = "Arctic";               //String 1
   double A = 2;                       // Number of John's pencils
   double Sum = W1 + A;              
** โปรแกรมจะฟ้อง error นะครับ ควรระวัง เพราะตัวแปรอักษรนำมาคำนวณไม่ได้ 
นอกจากเรื่องชนิดตัวแปรที่เราควรจะระวังแล้ว เรื่องลำดับการคำนวณก็เป็นสิ่งสำคัญ ผมแนะนำให้ใส่วงเล็บให้ชัดเจนครับ 
เพื่อให้ลำดับขั้นการคำนวณถูกต้อง ตามคำตอบที่ต้องการ   

วันพุธที่ 14 ธันวาคม พ.ศ. 2559

Operations and Expression

ตัวดำเนินการในภาษา MQL4 เป็นสิ่งจำเป็นที่เราจะต้องเข้าใจก่อนการเขียนโปรแกรม 


Arithmetical Operations:   ตัวดำเนินการทางคณิตศาสตร์


Symbol
Operation
Example
Analog
+
Addition of values  เพิ่มค่า
x + 2
-
Subtraction of values or sign change ลบ
x - 3, y = - y
*
Multiplication of values คูณ
3 * x
/
Quotient of division หาร
x / 5
%
Residue of division หารเอาเศษ
minutes = time % 60
++
Addition of 1 to the value of the variable เพิ่มค่า +1
y++
y = y + 1
--
Subtraction of 1 from the value of the variable ลบ - 1
y--
y = y - 1

Assignment Operations:  ตัวดำเนินการเครื่องหมาย 

Symbol
Operation
Example
Analog
=
Assignment of the value x to the variable y , ให้ค่าเท่ากับ           
у = x
+=
Increase of the variable y by x ,  เพิ่มค่าเท่ากับ x
у += x
y = y + x
-=
Reduction of the variable y by x ,ลดค่าเท่ากับ x
y -= x
y = y - x
*=
Multiplication of the variable y ,by x
y *= x
y = y * x
/=
Division of the variable y ,by x
y /= x
y = y / x
%=
Residue of division of the variable y by x 
y %= x
y = y % x

Relational Operations : ตัวดำเนินการลำดับขั้น


Symbol
Operation
Example
==
True, if x is equal to y ,จริงถ้าค่าเท่ากัน    
x == y
!=
True, if x is not equal to y ,จริงถ้าค่าไม่เท่ากัน 
x != y
< 
True, if x is less than y ,จริงถ้า x<y
x < y
> 
True, if x is more than y ,จริงถ้า x>y
x > y
<=
True, if x is equal to or less than y ,จริง ถ้า x<=y         
x <= y
>=
True, if x is equal to or more than y, จรืงถ้า x>=y
x >= y

Boolean (Logical) Operations : ตัวดำเนินการด้านตรรกศาสตร์


Symbol
Operation
Example
Explanations
!
ไม่ใช่
! х
 คืนค่าจริง ถ้าค่าไม่เท่ากับ x
||
หรือ
x < 5 || x > 7
 คืนค่าจริง ถ้า X <5 หรือ X > 7 
&&
และ)
x == 3 && y < 5   
 คืนค่าจริงถ้า X= 3 และ Y < 5 



 

Comma Operation


เป็นตัวคั่นระหว่าง Expression ซึ่งถูกใช้ใน Loop หรือ Function Call ซึ่งจะกล่าวในบทความต่อไป 

for(i=0,j=99; i<100; i++,j--) Print(array[i][j]); // Loop statement

My_function (Alf, Bet, Gam, Del) // Calling for a function with arguments

สามารถชมการอธิบายเรื่อง Operations and Expression  คลิปด้านล่าง


วันอังคารที่ 20 กันยายน พ.ศ. 2559

Constants and Variables

ค่าคงที่และตัวแปร


ค่าคงที่เป็นส่วนหนึ่งขงโปรแกรม ซึ่งมีค้าในตัวมันเอง ค่าคงที่นั้นมีลักษณะเหมือนกับค่าคงที่ในสมการคณิตศาสตร์ เป็นจำนวนตัวเลข 

เช่น PI = 3.14  ซึ่งแทนถึงค่า PI มีค่าเท่ากับ 3.14 

ค่าคงที่สามารถใช้ในสมการคณิตศาสตร์เช่น 

                                Y = 3*x + 7  โดยมีค่า 3 และ 7 เป็นค่าคงที่  

ตัวอย่างค่าคงที่อื่นๆ 

37, 3. 14 . true , "Kazen" 



คุณสมบัติของค่าคงที่นั้นไม่สามารถเปลี่ยนแปลงค่าได้ ซึ่งค่านั้นถูกเก็บไว้ใน memory cell 


Variable 

          ตัวแปรนั้นมีชื่อและมีค่าถูกจัดเก็บไว้ memory cell จะต่างจาก constant ซึ่งมันสามารถเปลียนแปลงค่าได้



จากรูปตัวแปร Bas = 217      ต่อมาเปลี่ยนค่าเป็น  45 ดังนั้น Bas = 45

ตัวอย่างค่าคงที่และตัวแปรในโปรแกรม 

A = 7 ;                หมายถึง ตัวแปร A มีค่าเท่ากับ 7 
ฺB = A + 3 ;         หมายถึง ตัวแปร B มีค่าเท่ากับ A + 3   =  7 + 3 = 10 

วันจันทร์ที่ 19 กันยายน พ.ศ. 2559

Basic Concept ก่อนเริ่มเขียน EA

Tick 


 -หมายถึงการเปลี่ยนแปลงของราคา  การทำงานของ EA จะขึ้นอยู่กับการเปลี่ยนแปลงราคา หากราคาไม่เปลี่ยนแปลง EA ก็จะไม่ทำงาน เนื่องจากข้อมูลไม่เปลี่ยนแปลง หากมีการเปลี่ยนแปลงของราคาเกิดขึ้น EA ก็จะได้รับข้อมูลใหม่เข้ามา จากนั้น EA ก็จะประมวลผลตามคำสั่ง หากอยู่ในเกณฑ์เงื่อนไขที่กำหนด EA ก็จะทำงานตามเงื่อนไขนั้นๆ


Control 

-  หมายถึงการทำงานของโปรแกรม เวลาเขียนโปรแกรมจะไล่จากบนลงล่าง จากซ้ายไปขวา 




Comment 

-  คือ การใส่หมายเหตุไว้เพื่อบันทึกย่อว่า แต่ละบรรทัดที่เราเขียนโปแกรมนั้นคืออะไร ใส่ไว้กันลืม หรือช่วยค้นหา และแก้ไข Code ได้ง่ายขึ้น ไวขึ้นนั่นเอง 

การทำงานของ Comment จะใช้เครื่องหมาย //   ตามด้วยข้อความ 

เช่น // MQL 4       หมายถึง จดหมายเหตุว่า MQL4 ซึ่งข้อความนี้จะไม่ถูกไป Run โปรแกรม 

หากต้องการเขียน Code หลาายบรรทัดจะใช้ Multi -line comment 

เริ่มต้น โดย /*    
ลงท้ายโดย  */

ตัวอย่าง                           
     










วันพฤหัสบดีที่ 14 กรกฎาคม พ.ศ. 2559

Data Type

                    พื้นฐานของการเขียนโปรแกรมด้วยภาษา MQL4  เราจำเป็นต้องรู้ถึงชนิดของข้อมูลของตัวแปรก่อน เพราะมันมีผลต่อการจัดเก็บข้อมูล
               

ชนิดข้อมูลของภาษา MQL4 มี 5 ชนิดคือ
      • int - integers;                                  จำนวนเต็ม 
      • double - real numbers;                   จำนวนจริงทศนิยม
      • bool - Boolean (logical) values;     ค่าตรรกศาศตร์ จริง เท็จ
      • string - values of string type;         ชนิดข้อมูลตัวอักษา
      • color - values of color type;            ชนิดข้อมูลสี
      • datetime - values of date and time.  ชนิดข้อมูลเวลา

เราต้องประกาศชนิดข้อมูลตัวแปรก่อนที่จะประกาศตัวแปร 

เช่น

                         int Art  = 10;                         

                         int B_27 = -1;                       

                         int Num  = 21;                        

                         int Max  = 2147483647;                 

                         int Min  = -2147483648;         
                       
                         bool aa    = True;


สำหรับรายละเอียดเพิ่มเติมสามารถติดตามได้ในคลิปบทที่ 2 ครับ 


พื้นฐานภาษา MQL4

                   ในปัจจุบันการเปิดเสรีทางการเงินได้เปิดกว้างมากกว่าก่อนมาก เราสามารถเลือกลงทุนได้ในหลายผลิตภัณฑืทางการเงิน เช่น หุ้น ETF ตราสารหนี้ อนุพันธ์ต่างๆ นอกจากนี้ เรายังสามารถเลือกไปลงทุนในต่างประเทศได้อีกด้วย ต้องยอมรับว่า การเปิดเสรีทางการเงินนั้น ช่วยสร้างโอกาศเพิ่มผลตอบแทนของนักลงทุนให้มากขึ้นมากกว่าก่อน
                   

                    ก่อนที่เราจะเลือกลงทุนในตราสารทางการเงินต่างๆ เราจำเป็นต้องรู้ถึงข้อมูลทางด้านปัจจัยพื้นฐานของตราสารที่อ้างอิงในแต่ละชนิด เช่นหากเราต้องการลงทุนในหุ้น เราจำเป็นต้องรู้ว่าหุ้นนั้น มีพื้นฐานบริษัทอะไร โอกาศการทำธุรกิจในอนาคตข้างหน้าสดใสไหม หรือ หากเศรษฐกิจถดถอย เสี่ยงเกิดวิกฤตเศรษฐกิจ ย้ายเงินไปอยู่ในพวกพันธบัตร หรือทองจะดีกว่าไหม ซึ่งปัจจัยพื้นฐานมีส่วนสำคัญในการพิจารณาเลือกสินทรัพย์ที่จะลงทุน ในขณะเดียวกันเมื่อเราพิจารณาว่าจะเลือกลงทุนอะไรแล้ว สิ่งที่ขาดไม่ได้คือ การเลือกจังหวะเข้าลงทุนนั้นก็สำคัญไม่แพ้กัน ซึ่งการเข้าออก ไม่ส่วนสำคัญในการช่วยลดความเสี่ยงที่จะเกิดการขาดทุนได้มาก ซึ่งเราก็จะวิเคราะห์ได้จากการวิเคราะห์ทางเทคนิคนั้นเอง


               ในปัจจุบันคอมพิวเตอร์และอินเตอร์เน็ตเข้ามามีส่วนสำคัญในการซื้อขายสินทรัพย์ทางการเงินเป็นอย่างมาก เราสามารถเขียนคำสั่ง เพื่อให้โปรแกรมสั่งซื้อขายสินทรัพย์ทางการเงินตามเงื่อนไขที่กำหนดในตลาดได้อย่างรวดเร็ว สำหรับโปรแกรมที่นิยมเขียนกันอย่างแพร่หลายก็คือ Metatrader 4 ซึ่งใช้ภาษา MQL4 ในการเขียนคำสั่ง ซึ่งภาษา MQL4 นี้สามารถเขียน Custom indicator เพื่อเป็น signal ให้เรารู้ว่าเราควรเข้าซื้อ ขาย ณ เวลาใด  หรือสามารถ เขียน EA เพื่อทำ System trade ตามเงื่อนไขที่เรากำนหด ข้อดีก็คือ การเทรดโดยใช้ EA จะไม่มีผลทางจิตวิทยาเข้ามาเกี่ยวข้อง เพราะเป็นการเทรดตามระบบที่เราวางไว้ สำหรับในบทความนี้เราจะแนะนำถึงภาษา MQL4 เบื้องต้น ผ่านทางคลิปในยูทูปครับ หากใครสนใจที่จะเขียน EA หรือ Custom indicator ลองติดตามกันต่อไปซึ่งจะมีรายละเอียดเกี่ยวกับการสอนเขียน EA เพิ่มเติมในคลิปต่อๆไปครับ