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

หัดเขียนอีเอตามยูทูปแล้วมีปัญหาเปิด/ปิดต่อเนื่องตลอด

  • 1 replies
  • 863 views
*

supachai05

    พอดีลองเขียน ea จากยูทูปแบคเทสได้แต่พอเอาไปลงกับเดโมกลับเปิดออเดอร์ตามรูปแบบนี้ขอความกรุณาจากผู้รู้ทุกท่านช่วยดูหน่อยครับว่าผิดพลาดตรงไหนอยากลองเขียนดูครับ


    extern int    MagicNumber = 12345;
    extern double Lotsize = 0.1;
    extern int    TP      = 1000;
    extern int    SL      = 1000;

    int OnInit()
      {
    //---
       
    //---
       return(INIT_SUCCEEDED);
      }

    double Fma,Sma,FmaSh,SmaSh;
    void GetMA(){

       Fma = iMA(Symbol(),0,20,0,MODE_SMA, PRICE_CLOSE,0);
       Sma = iMA(Symbol(),0,144,0,MODE_SMA, PRICE_CLOSE,0);
       
       FmaSh = iMA(Symbol(),0,20,0,MODE_SMA, PRICE_CLOSE,1);
       SmaSh = iMA(Symbol(),0,144,0,MODE_SMA, PRICE_CLOSE,1);
       
       
       
       
    }
    void Openbuy(){
       double sl=Bid-SL*Point;
       double tp=Ask+TP*Point;
       OrderSend(Symbol(),OP_BUY,Lotsize,Ask,3,sl,tp,"My order",MagicNumber,0,clrGreen);
    }
    void OpenSell(){
       double sl=Ask+SL*Point;
       double tp=Bid-TP*Point;
      OrderSend(Symbol(),OP_SELL,Lotsize,Bid,3,sl,tp,"My order",MagicNumber,0,clrGreen);
    }
    void CloseorderAll(int type){
       for(int i= OrdersTotal()-1;i>=0;i--){
          if(OrderSelect(i,SELECT_BY_POS)==true){
             if(OrderMagicNumber()== MagicNumber && OrderSymbol()==Symbol()){
                switch(type){
                   case OP_BUY:
                         OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,0);
                   break;
                   case  OP_SELL:   
                          OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,0);
                   break;     
                  }
               }
           }     
       }
       
    }           
       
       
       
         
    int CountOrder(int type){
       
       int CntOrder = 0;
          for(int i=0;i<OrdersTotal ();i++){
             OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
             if(OrderType() == type  &&  OrderMagicNumber()== MagicNumber){
                if(OrderSymbol()==Symbol()){
                   CntOrder++;
              }
           }
        }
        return(CntOrder);
    }
         
    //+------------------------------------------------------------------+
        //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick(){

      GetMA(); 
      if(CountOrder(OP_SELL)==0)
      {
         if(Fma < Sma && FmaSh > SmaSh)
         {
            OpenSell();
            CloseorderAll(OP_BUY);
       
         }
      }
     
      if(CountOrder(OP_BUY)==0){
         if(Fma>Sma&&FmaSh<SmaSh){
            Openbuy();
            CloseorderAll(OP_SELL);
        }
      }

    }
    //+------------------------------------------------------------------+
    [/list]

    *

    akkradet.ng

    void CloseorderAll(int type){
       for(int i= OrdersTotal()-1;i>=0;i--){
          if(OrderSelect(i,SELECT_BY_POS)==true){
             if(OrderMagicNumber()== MagicNumber && OrderSymbol()==Symbol()){
                switch(type){
                   case OP_BUY:
                         OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,0);
                   break;
                   case  OP_SELL:   
                          OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,0);
                   break;     
                  }
               }
           }     
       }
       
    }           
       ))/* ))/*

    เปลี่ยน
    void CloseorderAll(int type)
    {
       for(int i= OrdersTotal()-1;i>=0;i--)
       {
          if(OrderSelect(i,SELECT_BY_POS)==true)
          {
             if(OrderMagicNumber()== MagicNumber && OrderSymbol()==Symbol()&&OrderType()==type)
             {
                if (OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,0);
                if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 0, 0);
             }
           }     
       }
       
    }

    ที่จริงตัวแปร type มันไม่จำเป็นเลย เพราะข้างในก็มีอยก buy sell อยู่แล้ว