การจัดการ Slippage และ Requote

จัดการ requote slippage

Slippage และ Requote เป็นสิ่งที่เกิดขึ้นได้บ่อยในการเทรด Forex โดยเฉพาะในช่วงที่ตลาดมีความผันผวนสูง การจัดการกับปัญหาเหล่านี้อย่างเหมาะสมจะช่วยให้ EA ของเราทำงานได้อย่างมีประสิทธิภาพมากขึ้น 1. การจัดการ Slippage Slippage คือความแตกต่างระหว่างราคาที่คาดหวังกับราคาที่ได้จริงเมื่อคำสั่งซื้อขายถูกดำเนินการ เราสามารถจัดการ Slippage ได้โดยกำหนดค่า maximum slippage ที่ยอมรับได้ ตัวอย่างโค้ด: int OpenOrder(int type, double lots, double price, int slippage) { color arrow_color = (type == OP_BUY) ? clrBlue : clrRed; int ticket = OrderSend(Symbol(), type, lots, price, slippage, 0, 0, “Order”, 0, 0, arrow_color); [อ่านเพิ่มเติมคลิ๊ก]

ฟังก์ชันสำหรับการคำนวณขนาด Lot อัตโนมัติ

การคำนวณ Lot อัติโนมัติ

ฟังก์ชันสำหรับการคำนวณขนาด Lot การคำนวณขนาด Lot อัตโนมัติเป็นส่วนสำคัญของการจัดการความเสี่ยงในการเทรด Forex การปรับขนาด Lot ให้เหมาะสมกับขนาดบัญชีและระดับความเสี่ยงที่ยอมรับได้จะช่วยป้องกันการสูญเสียเงินทุนมากเกินไปในการเทรดแต่ละครั้ง เริ่มต้น: ฟังก์ชันเริ่มทำงาน รับค่าพารามิเตอร์: รับค่า symbol, riskPercentage, และ stopLossPips ดึงข้อมูลบัญชีและตลาด: ดึงข้อมูลยอดเงินในบัญชี, ค่า Tick Value, ขนาด Lot ขั้นต่ำ/สูงสุด, และ Lot Step คำนวณจำนวนเงินที่ยอมรับความเสี่ยง: คำนวณจากยอดเงินในบัญชีและเปอร์เซ็นต์ความเสี่ยง คำนวณขนาด Lot เริ่มต้น: คำนวณโดยใช้จำนวนเงินที่ยอมรับความเสี่ยงและระยะ Stop Loss ปรับขนาด Lot ตาม Lot Step: ปัดเศษขนาด Lot ให้เป็นไปตาม Lot Step ของโบรกเกอร์ ปรับขนาด Lot ให้อยู่ในช่วงที่อนุญาต: ตรวจสอบและปรับขนาด Lot ให้อยู่ระหว่างค่าขั้นต่ำและสูงสุดที่โบรกเกอร์อนุญาต ส่งคืนค่า: ส่งคืนขนาด [อ่านเพิ่มเติมคลิ๊ก]

การคำนวณขนาด Lot แบบ Martingale

การเขียน function martingale lot

ฟังก์ชันสำหรับการคำนวณขนาด Lot แบบ Martingale Martingale เป็นกลยุทธ์ที่เพิ่มขนาดการเทรดหลังจากการขาดทุน โดยมีแนวคิดว่าการชนะครั้งต่อไปจะครอบคลุมการขาดทุนที่ผ่านมาทั้งหมดและสร้างกำไร แม้ว่ากลยุทธ์นี้จะมีความเสี่ยงสูง แต่ก็เป็นที่นิยมในหมู่นักเทรดบางกลุ่ม ต่อไปนี้เป็นฟังก์ชันสำหรับคำนวณขนาด Lot แบบ Martingale   ฟังก์ชันนี้คำนวณขนาด Lot โดยใช้หลักการ Martingale ดังนี้: double CalculateMartingaleLotSize(double initialLot, int consecutiveLosses, double multiplier, double maxLot) { double lotSize = initialLot * MathPow(multiplier, consecutiveLosses); // ตรวจสอบขนาด Lot ขั้นต่ำและสูงสุดที่โบรกเกอร์อนุญาต double minLot = MarketInfo(Symbol(), MODE_MINLOT); double maxAllowedLot = MathMin(maxLot, MarketInfo(Symbol(), MODE_MAXLOT)); // ปรับขนาด Lot ให้อยู่ในช่วงที่อนุญาต [อ่านเพิ่มเติมคลิ๊ก]

ฟังค์ชั่น EA ที่จำกัดจำนวนการเทรดต่อวัน

EA จำกัดจำนวนเทรดต่อวัน

ฟังก์ชันสำหรับจำกัดจำนวนการเทรดต่อวัน ต่อไปนี้เป็นฟังก์ชันที่ใช้สำหรับจำกัดจำนวนการเทรดต่อวัน ซึ่งสามารถนำไปใช้ในหลาย EA ได้:   // Global variables int g_todayTrades = 0; datetime g_lastTradeDay = 0; //+——————————————————————+ //| Function to check if a new trade is allowed | //+——————————————————————+ bool CanOpenNewTrade(int maxDailyTrades) { datetime currentDay = StringToTime(TimeToString(TimeCurrent(), TIME_DATE)); // Reset counter if it’s a new day if (currentDay != g_lastTradeDay) { g_todayTrades = 0; [อ่านเพิ่มเติมคลิ๊ก]

ฟังก์ชันสำหรับการคำนวณและจำกัด Drawdown

ฟังค์ชั่นจัดการ Drawdown

Drawdown เป็นตัวชี้วัดสำคัญในการจัดการความเสี่ยงสำหรับการเทรด Forex การจำกัด drawdown ช่วยป้องกันการสูญเสียเงินทุนมากเกินไปและรักษาเสถียรภาพของบัญชีในระยะยาว ต่อไปนี้เป็นฟังก์ชันสำหรับคำนวณและจำกัด drawdown:   // Global variables double g_maxBalance = 0; double g_currentDrawdown = 0; //+——————————————————————+ //| Function to calculate current drawdown | //+——————————————————————+ double CalculateDrawdown() { double currentBalance = AccountBalance(); if (currentBalance > g_maxBalance) { g_maxBalance = currentBalance; } if (g_maxBalance > 0) { g_currentDrawdown = (g_maxBalance – currentBalance) [อ่านเพิ่มเติมคลิ๊ก]

Code function ที่ใช้ Price Action Strategy

กลยุทธ์ Price Action

ตัวอย่าง Code function ที่ใช้ Price Action Strategy Price Action Strategy เป็นวิธีการเทรดที่อาศัยการวิเคราะห์การเคลื่อนไหวของราคาโดยตรง โดยไม่พึ่งพา Indicator ทางเทคนิคมากนัก ในที่นี้เราจะแสดงตัวอย่าง Code function ที่ใช้ในการวิเคราะห์ Price Action และสร้างสัญญาณเทรด 1. ฟังก์ชันระบุแนวโน้มของตลาด ฟังก์ชันนี้ใช้ Moving Average (MA) เพื่อระบุแนวโน้มของตลาด โดยพิจารณาจากความสัมพันธ์ระหว่างราคาปัจจุบัน, ค่า MA ปัจจุบัน และค่า MA ก่อนหน้า int IdentifyTrend(int period = 20) { double ma = iMA(NULL, 0, period, 0, MODE_SMA, PRICE_CLOSE, 0); double prevMa = iMA(NULL, [อ่านเพิ่มเติมคลิ๊ก]

ชุดคำสั่งสำหรับสร้างสัญญาณจาก Indicator Crossovers

indicator Cross Over

การสร้างสัญญาณจาก Indicator Crossovers Indicator Crossovers เป็นวิธีที่นิยมใช้ในการสร้างสัญญาณเทรด โดยอาศัยการตัดกันของเส้น Indicator หรือการตัดผ่านค่าที่กำหนด ต่อไปนี้เป็นตัวอย่างชุดคำสั่งสำหรับสร้างสัญญาณจาก Indicator Crossovers ที่ใช้บ่อย: 1. Moving Average Crossover การตัดกันของ Moving Average สองเส้นที่มีช่วงเวลาต่างกัน เป็นวิธีที่นิยมใช้ในการระบุแนวโน้มและสร้างสัญญาณเทรด   int MAcrossover(int fastPeriod, int slowPeriod) { double fastMA = iMA(NULL, 0, fastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double slowMA = iMA(NULL, 0, slowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double prevFastMA = iMA(NULL, 0, fastPeriod, [อ่านเพิ่มเติมคลิ๊ก]

การใช้ Candlestick pattern

การใช้ candlestick ตัดสินใจ

ตัวอย่างการใช้ Candlestick pattern ในการตัดสินใจ Candlestick pattern เป็นเครื่องมือที่มีประสิทธิภาพในการวิเคราะห์ตลาดและสร้างสัญญาณเทรด โดยอาศัยการวิเคราะห์รูปแบบของแท่งเทียนที่เกิดขึ้น ซึ่งสามารถบ่งบอกถึงการเปลี่ยนแปลงของแรงซื้อขายและแนวโน้มของตลาดได้ 1. พื้นฐานของ Candlestick ก่อนที่จะเริ่มวิเคราะห์ pattern ต่างๆ เราต้องเข้าใจองค์ประกอบพื้นฐานของแท่งเทียนก่อน:   struct CandleComponents { double body; double upperWick; double lowerWick; bool isBullish; }; CandleComponents GetCandleComponents(int shift = 0) { CandleComponents candle; candle.body = MathAbs(Close[shift] – Open[shift]); candle.upperWick = High[shift] – MathMax(Close[shift], Open[shift]); candle.lowerWick = MathMin(Close[shift], Open[shift]) – Low[shift]; candle.isBullish [อ่านเพิ่มเติมคลิ๊ก]

การเขียน function Trailingstop

การใช้ฟังค์ชั่น trailingstop

Trailing Stop เป็นเทคนิคการจัดการความเสี่ยงที่ช่วยปกป้องกำไรที่ได้มาแล้ว โดยการปรับ Stop Loss ให้เคลื่อนที่ตามราคาที่เปลี่ยนแปลงไปในทิศทางที่เป็นประโยชน์ต่อการเทรด ต่อไปนี้เป็นตัวอย่างการใช้งาน Trailing Stop ใน MQL4: ฟังก์ชัน Trailing Stop พื้นฐาน   void ApplyTrailingStop(int ticket, int trailingPoints) { if(!OrderSelect(ticket, SELECT_BY_TICKET)) { Print(“Error selecting order “, ticket, ” for trailing stop. Error: “, GetLastError()); return; } double newSL; if(OrderType() == OP_BUY) { newSL = NormalizeDouble(Bid – trailingPoints * Point, Digits); if(newSL [อ่านเพิ่มเติมคลิ๊ก]

ชุดคำสั่งสำหรับการเปิดออเดอร์

การส่งออเดอร์ด้วย คำสั่ง Market Order และ Pending

ชุดคำสั่งสำหรับการเปิดออเดอร์ (Market Orders, Pending Orders) ในการเทรด Forex ด้วย Expert Advisor (EA) การเปิดออเดอร์เป็นหนึ่งในฟังก์ชันพื้นฐานที่สำคัญที่สุด MQL4 มีฟังก์ชัน OrderSend() ที่ใช้สำหรับการเปิดออเดอร์ทั้ง Market Orders และ Pending Orders ลองมาดูวิธีการใช้งานกัน: การเปิดออเดอร์แบ่งเป็นสองประเภทหลัก: Market Order และ Pending Order Market Order: ซื้อ (OP_BUY): เปิดออเดอร์ซื้อทันทีที่ราคา Ask ปัจจุบัน ขาย (OP_SELL): เปิดออเดอร์ขายทันทีที่ราคา Bid ปัจจุบัน สำหรับทั้งสองกรณี ต้องกำหนด Stop Loss (SL) ให้เหมาะสม Pending Order: ซื้อในอนาคต: Buy Limit: ตั้งคำสั่งซื้อที่ราคาต่ำกว่าราคาปัจจุบัน Buy Stop: ตั้งคำสั่งซื้อที่ราคาสูงกว่าราคาปัจจุบัน [อ่านเพิ่มเติมคลิ๊ก]

PNFPB Install PWA using share icon

For IOS and IPAD browsers, Install PWA using add to home screen in ios safari browser or add to dock option in macos safari browser