Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Recent Posts

Pages: [1] 2 3 ... 10
1
เรียน สอบถามท่านผู้รู้
ผมได้เขียน EA ตัวหนึ่ง หลักการทำงานคือให้ buy หรือ sell ท่ี RSI แถว Overbougth Oversold และมีแท่งกลับตัว ผล backtest ดีมาก แต่พอรันด้วย
Demo แล้วเกิดปัญหา ดังนี้
1.การออก lot แต่ละค่าเงินไม่เท่ากันทั้งที่ใน code เป็น 0.01
2.ระดับ RSI ยังไม่ถึงมันออกออเดอร์แล้ว
3.เมื่อออกออเดอร์แล้วมันปิดคำสั่งทั้งที่ยังไม่ถึง TP SL

รบกวนท่านผู้รู้ตรวจสอบทีครับ
//+------------------------------------------------------------------+
//|                                                     template.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
extern int    MagicNumber=1414;
extern double Lots =0.01;
extern string TradeComment=" Trade GU takeproft and loss is 1 digits = 1 PIP ";
extern string TPSLComment1=" Martingale SL4000,TP1400";
extern string TPSLComment2=" Non Martingale Sl500 TP1200 ";
extern double SL=4000;
extern double TP=1200;
extern int    TrailingStop=500;
extern int    Slippage=3;
extern int    Length=1500;
extern string RSIComment=" RSI good when <25,>65 for Martingale , have a candle strick > 800 pip Suitable For Manaul ";
extern int    LevelRSIbuy=25;
extern int    LevelRSIsell=65;
extern string MAcomment=" MA SETTING";
extern bool   UsedMA=true;
extern int    MA=24;
extern int    RSIperiod=14;
extern bool   Martingale = true;
extern double Multiple = 2;
extern int    Maxorder = 6;
extern int    Distance = 700;
extern string ProfitComment=" when use Martingale,Equity 100$ take 20$ ";
extern double Profit = 20;
extern bool   CloseforSafe = true;


//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
double RSI;
void RSI()
{
   RSI=iRSI(NULL,0,RSIperiod,PRICE_CLOSE,0);
}
void EntryOder()
{double lastbarBull1 = iOpen(NULL,PERIOD_H1,1);
 double lastbarBull2 = iOpen(NULL,PERIOD_H1,2);
 double lastbarBull3 = iOpen(NULL,PERIOD_H1,3);
 double lastbarBear1 = iOpen(NULL,PERIOD_H1,1);
 double lastbarBear2 = iOpen(NULL,PERIOD_H1,2);
 double lastbarBear3 = iOpen(NULL,PERIOD_H1,3);
 double Bar1 = (iClose(NULL,PERIOD_H1,1)-iOpen(NULL,PERIOD_H1,1));
 double Bar2 = (iClose(NULL,PERIOD_H1,2)-iOpen(NULL,PERIOD_H1,2));
 double Bar3 = (iClose(NULL,PERIOD_H1,3)-iOpen(NULL,PERIOD_H1,3));
 double curbarsell = iClose(NULL,PERIOD_H1,0);
 double curbarbuy = iClose(NULL,PERIOD_H1,0);
{

   if(OrdersTotal()==0)
   {
   if((RSI<LevelRSIbuy)&&(curbarbuy>lastbarBear1))OpenBuy();//&&(curbarbuy>lastbarBear1
   if((RSI>LevelRSIsell)&&(curbarsell<lastbarBull1))OpenSell();//&&(curbarsell<lastbarBull1)
   }
  }
}
void Martin()
{
   if(Martingale)
   {
   if(CountBuy()>0 && askPrice-Ask>Distance*Point && CountBuy()<Maxorder)OpenBuy();
   if(CountSell()>0 && Bid-bidPrice>Distance*Point && CountSell()<Maxorder)OpenSell();
   }
}
int CountBuy()
{
   int Count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
    bool res = OrderSelect(i,SELECT_BY_POS);
    if(OrderType()== OP_BUY)
    {
     Count++;
    }
   }
   return Count;
}

int CountSell()
{
   int Count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
    bool res = OrderSelect(i,SELECT_BY_POS);
    if(OrderType()== OP_SELL)
    {
     Count++;
    }
   }
   return Count;
}
double NewLots()
{
   double NewLots=Lots;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
      bool res = OrderSelect(i,SELECT_BY_POS);
      NewLots=NewLots*Multiple;
   }
   return NewLots;
}
//+------------------------------------------------------------------+
int ticket;
double askPrice,bidPrice;
void OpenBuy()
{
   ticket = OrderSend(Symbol(),OP_BUY,NewLots(),Ask,3,Ask-SL*Point,Ask+TP*Point,"",1414,0,clrBlue);
   askPrice=Ask;
}

void OpenSell()
{
   ticket = OrderSend(Symbol(),OP_SELL,NewLots(),Bid,3,Bid+SL*Point,Bid-TP*Point,"",1414,0,clrRed);
   bidPrice=Bid;
}
void CloseBuy()
{
   bool res;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
      res = OrderSelect(i,SELECT_BY_POS);
      if(Close[0]>iMA(NULL,0,MA,0,MODE_EMA,PRICE_MEDIAN,0))CloseBuy();
      if(OrderType()== OP_BUY)
      res = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),50,clrBlue);
   }
}
void CloseSell()
{
   bool res;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
      res = OrderSelect(i,SELECT_BY_POS);
      if(Close[0]<iMA(NULL,0,MA,0,MODE_EMA,PRICE_MEDIAN,0))CloseSell();
      if(OrderType()== OP_SELL)
      res = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),50,clrBlue);
   }
}
void ClosebyProfit()
{
   if(AccountProfit()>=Profit)
   {
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         bool res = OrderSelect(i,SELECT_BY_POS);
         ticket = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),20,clrPink);
      }
   }
}
void Closeforsafe()
{
   if(CountBuy()==Maxorder && askPrice-Ask>Distance*Point)
   {
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         bool res = OrderSelect(i,SELECT_BY_POS);
         if(i>=Maxorder-1)continue;
         ticket = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),20,clrPink);
      }
   }
   if(CountSell()==Maxorder && Bid-bidPrice>Distance*Point)
   {
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         bool res = OrderSelect(i,SELECT_BY_POS);
         if(i>=Maxorder-1)continue;
         ticket = OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),20,clrPink);
      }
   }
}
void OnTick()
  {
      RSI();
      EntryOder();
      Martin();
      ClosebyProfit();
      Closeforsafe();
  }
//+------------------------------------------------------------------+
2
แจก EA ฟรี / ตามหาอีเอ Buy-Sell พร้อมกัน
« Last post by win_dream on มิถุนายน 13, 2019, 04:14:11 pm »
ตามหาอีเอ Buy Sell พร้อมกัน ค่ะ
ออร์เดอร์ไหนได้กำไรก็ปิดไป 10 จุด 5 จุดแล้วแต่ตั้ง TP
ถ้าติดลบก็เปิดใหม่ทุกๆ 10 จุด 5 จุดแล้วแต่กำหนด ไม่มี SL

พอดีเคยเห็นในกระทู้ในเวป แต่จำไม่ได้ว่ากระทู้ไหน
ทานใดมีโหลดเก็บไว้ รบกวนส่งให้บ้างนะคะ


ขอบคุณล่วงหน้าค่ะ  :) :) :) :)
3
 ;D ;Dสวัสดีครับพี่ทุกท่าน ผมสนใจการเขียน ea พอดีเห็นเวปนี้มีพี่ใจดีมากมาย,,,เลยของฝากตัวเป็นลูกศิษย์ ด้วยนะครับ ;D ;D
4
แจก EA ฟรี / Re: ea copy trade
« Last post by gunlanutt on มิถุนายน 10, 2019, 08:06:08 pm »
มันขึ้นฟ้องว่าไม่สามารถสร้างไฟล์ได้ครับ
5
แจก EA ฟรี / Re: ea copy trade
« Last post by gunlanutt on มิถุนายน 10, 2019, 08:54:07 am »
ตามหลักการแล้ว เราต้องสร้างโฟลเดอร์ไหมครับ หรือว่าอีเอ มันจะสร้างโฟลเดอร์ mt4copy ขึ้นมาให้เองครับ

เพราะผมลองลากเข้าไปแล้ว ปรากฏว่าไม่มีอะไรเกิดขึ้นเลย ในตัว มาสเตอร์บอกว่ามี 1 ออร์เดอร์ ตัว สลาฟ บอกว่าไม่พบ
6
แจก EA ฟรี / Re: ea copy trade
« Last post by gunlanutt on มิถุนายน 09, 2019, 12:45:44 pm »
ท่าน admin ครับ

ตัวอีเอ ทั้งที่เป็น master และที่เป็น slave  มันใช้ไม่ได้ครับ ลากเข้ากราฟก็ไม่ได้ ผลเลยลองเอามา compile มันขึ้น error บรรทัดที่ 309 ครับ แก้ไขอย่างไรได้บ้างครับ
8
   Venom Scalper is a scaler EA, which trades strong market movements.  The basis of the EA strategy lies on breakouts of the key levels based on supply and demand. The EA analyzes the volatility values, sets the breakeven levels, controls slippages and spread expansions. The trailing stop allows the robot to capture most of the movements, while reducing the risks. The settings are indented for the m15-h1 timeframe.
Min deposit is $500-1000 usd account.
http://www.mediafire.com/file/w5g37c8119w2og5/EA_VENOM_Scalping.ex4/file

e-mail : teathao@gmail.com
9
ปัญหาที่พบในการเขียน EA / EA ไม่ modify order ให้
« Last post by Sittiphon on มิถุนายน 01, 2019, 08:36:04 am »
สวัสดีครับทุกท่าน พอดีมีปัญหา EA Modify Order ให้ครับครับ

ปัญหามันเกิดที่บรรทัดที่ผมดอกจันไว้( //*****************************) ไม่ทำงานครับ
โดย concept ของโปรแกรมคือ เปิด order buy และ sell พร้อมกัน เมื่อ Order buy TP แล้วให้ Order sell Modify Order ครับ
แต่ปรากฎว่าเมื่อ Order buy TP แล้ว ปรากฏว่า Order sell ไม่ Modify Order ให้ครับ ซึ่งมันแจ้งเตือน Error 4051 ครับ คือ แจ้งเตือนว่า "ค่าพารามิเตอร์ของฟังก์ชันไม่ถูกต้อง" คือผมก็ลองเช็คแล้วก็ไม่น่าจะมีอะไรผิดครับ รบกวนทุกท่านช่วยแนะนำการแก้ไขด้วยครับ ขอบคุณครับ

ผมลอง back test ด้วย กราฟค่าเงิน UC ครับ (ภาพตามลิงค์ ด้านล่างครับ)
1.รูปแบบกราฟ
https://drive.google.com/open?id=18LYpIq-T0aqVVdOmMkUV0aO6oj3Kk6IE
2.setting ก่อนเริ่ม backtest
https://drive.google.com/open?id=1W1u84GnP1KNZGITR_aBZ4aiv6wxQfC4X
3.Error ที่แจ้งเตือน
https://drive.google.com/open?id=1NqDeMO1z6u3-kjAtJ0iRftd6fC8qIHex

int start()
{
   static double pbuy = MarketInfo(Symbol(),MODE_ASK);
   static double psell = MarketInfo(Symbol(),MODE_BID);
   
   if(OrdersTotal()==0)
   {
   int ticketb1 = OrderSend(Symbol(),OP_BUY,0.20,pbuy,3,pbuy-500*Point,pbuy+100*Point,"Ea", 1234,0,Green);
   int tickets1 = OrderSend(Symbol(),OP_SELL,0.20,psell,3,psell+500*Point,psell-100*Point,"Ea", 1234,0,Red);
       
   }
   
      int BuyOrder=0;
      int SellOrder=0;
     
       for(int i=0 ;i<OrdersTotal();i++)
      {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);   
         if(OrderType()==OP_BUY)
         BuyOrder++;
         if(OrderType()==OP_SELL)
         SellOrder++;
         
            if(BuyOrder == 0 && SellOrder == 1)
            {
   
               OrderModify(tickets1,psell,psell+500*Point,psell-300*Point,0,Red);    //*****************************
             
            }
      }
 
 
   
return(0);
}
10
โอเค ได้แล้ว สรุปคือต้องแปลงค่าให้เป็นเงินบาท และ มันล็อคให้ Buy only สำหรับหุ้น ส่วน tfex น่าจะได้ทั้งสองทาง
Pages: [1] 2 3 ... 10