j3rrbk6ha3w6vjk9k6s6f67f

Author: FEELING , TL��13530409376:
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Moving average indicator
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
j3rrbk6ha3w6vjk9k6s6f67f

#property copyright "FEELING ,  TL£º13530409376:"
#property link      "²âÊÔÖ¸±ê"
#define QQ 450459237

extern int restM=0;  //ÐÝϢʱ¼ä
extern double mylots=0.1;
extern int myslippage=7; //»¬µãÊý

extern int mx=0 ; //Ó¦ÓÃÓÚͼ±íµÄʱ¼äÖÜÆÚ



extern int maf=7 ; //maÖÜÆÚ
extern int mas=26 ; //maÖÜÆÚ



extern int howgetclose=10;//ÖÁÉÙ»ñÀû¶àÉÙ¸öµã²Å¿ÉÒÔÆ½²Ö
extern int howlossclose=-100;//ƽ»ñÀûµ¥µÄͬʱƽµô¿÷Ë𳬹ýijֵµÄ×î´óµ¥

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
int closeadd=0;  
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
int restmm=0; 
int ifdoubletrade=0;
int ifbuytrade=0;
int ifsaletrade=0;
//+------------------------------------------------------------------+
int start()
  {
//----
   
   if(restM==0)  
   restmm=Period();
   else
   restmm=restM;
   
   
   if (ifdoubletrade==1)
   {
      if(ifbuytrade==1)           
      send_buyorder();
      if(ifsaletrade==1)
      send_saleorder();
      if(ifbuytrade==0 && ifsaletrade==0)
      {
         ifdoubletrade=0;
         Sleep(restmm*120*1000); 
      }
   }
   
   
    if(ifbuytrade==1)     
    {      
      send_buyorder();
      Sleep(restmm*120*1000);       
    }
    if(ifsaletrade==1)
    {
      send_saleorder();
      Sleep(restmm*120*1000); 
    }
   
   
   double ma7=iMA(NULL,mx,maf,0,MODE_SMA,PRICE_CLOSE,0 );
   double ma26=iMA(NULL,mx,mas,0,MODE_SMA,PRICE_CLOSE,0 );
   double ma71=iMA(NULL,mx,maf,0,MODE_SMA,PRICE_CLOSE,1 );
   double ma261=iMA(NULL,mx,mas,0,MODE_SMA,PRICE_CLOSE,1 );
   

   
   if(ma7>ma26 && ma71<ma261  )
   {
      if(OrdersTotal()<2)
      {
      
      ifdoubletrade=1;
      ifbuytrade=1;
      ifsaletrade=1;
      send_saleorder();
      send_buyorder();            
      
      }
   }
   
    if(ma7<ma26 && ma71>ma261  )
   {
      if(OrdersTotal()<2)
      {
      ifdoubletrade=1;
      ifbuytrade=1;
      ifsaletrade=1;
      send_saleorder();   
      send_buyorder();      
     
      }
   }
   
   int ifclose=0;
   int ifclosetype=0;
   
   
   if(ma7>ma26 && ma71<ma261 )
   {
       ifclose=0;
       ifclosetype=0;
      for(int i=0;i<OrdersTotal();i++)      
      {
            if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==true)
               {     
                  if(OrderType()==OP_BUY )
                  {
                        if((Bid-OrderOpenPrice())/Point>howgetclose )
                        {
                           send_orderclose(OrderTicket(),Bid,myslippage,Red)  ;     
                           close_lossMaxOrder(OrderType(),howlossclose)     ;    
                           ifclose=1;
                           ifclosetype=1;
                           
                        }
                  }
                  
                  if(OrderType()==OP_SELL )
                  {
                        if((OrderOpenPrice()-Ask)/Point>howgetclose )
                        {                 
                            send_orderclose(OrderTicket(),Ask,myslippage,Green)   ; 
                            close_lossMaxOrder(OrderType(),howlossclose)     ;
                            ifclose=1;
                           ifclosetype=-1;
                        }
                  }
                  
               }              
               
               
               
               
      } //over for
        ////////////////////////////////////
                             
   }
   
   
   
   
   if(ma7<ma26 && ma71>ma261 )
   {
        ifclose=0;
        ifclosetype=0;
      for( i=0;i<OrdersTotal();i++)      
      {
            if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==true)
               {     
                  if(OrderType()==OP_BUY )
                  {
                        if((Bid-OrderOpenPrice())/Point>howgetclose )
                        {
                           send_orderclose(OrderTicket(),Bid,myslippage,Red)  ;     
                           close_lossMaxOrder(OrderType(),howlossclose)     ;    
                           ifclose=1;
                           ifclosetype=1;
                        }
                  }
                  
                  if(OrderType()==OP_SELL )
                  {
                        if((OrderOpenPrice()-Ask)/Point>howgetclose )
                        {                 
                            send_orderclose(OrderTicket(),Ask,myslippage,Green)   ; 
                            close_lossMaxOrder(OrderType(),howlossclose)     ;
                            ifclose=1;
                           ifclosetype=-1;
                        }
                  }
                  
               }              
               
               
               
               
      } //over for


      if(ifclose==1)
      {
      if(OrdersTotal()<2)
         {
            ifdoubletrade=1;
            ifbuytrade=1;
            ifsaletrade=1;
            send_saleorder();
            send_buyorder();                            
         }
         else
         {
            if(ifclosetype==1)
            {
               ifbuytrade=1;            
               send_buyorder();  
            }

            if(ifclosetype==-1)
            {
                ifsaletrade=1; 
                send_saleorder();
            }

         }

       }       
      
      
   }
   
   
   
   
   
   
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+




int maxloss=0 ;

void close_lossMaxOrder(int ordertp,int howloss) 
{

     
    for(int i=0;i<OrdersTotal();i++)      
      {
            if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==true)
               {
                  if(OrderType()==ordertp && ordertp==0 ) 
                  {
                     if((Bid-OrderOpenPrice())/Point<howloss )
                     {
                        if(maxloss>(Bid-OrderOpenPrice())/Point )
                        {
                           maxloss=(Bid-OrderOpenPrice())/Point;
                        }
                     }
                  }
                  
                   if(OrderType()==ordertp && ordertp==1 ) 
                   {
                     if((OrderOpenPrice()-Ask)/Point<howloss )
                     {
                        if(maxloss>(OrderOpenPrice()-Ask)/Point )
                        {
                           maxloss=(OrderOpenPrice()-Ask)/Point;
                        }
                     }
                   }
               }
               
      } 
       
     
      
      
      
    
       for( i=0;i<OrdersTotal();i++)      
      {
            if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)==true)
               {
                  if(OrderType()==ordertp && ordertp==0 ) 
                  {
                     if((Bid-OrderOpenPrice())/Point<howloss )
                     {
                        if(maxloss==(Bid-OrderOpenPrice())/Point )
                        {
                           send_orderclose(OrderTicket(),Bid,myslippage,Red)  ;    
                        }
                     }
                  }
                  
                   if(OrderType()==ordertp && ordertp==1 ) 
                   {
                     if((OrderOpenPrice()-Ask)/Point<howloss )
                     {
                        if(maxloss==(OrderOpenPrice()-Ask)/Point )
                        {
                            send_orderclose(OrderTicket(),Ask,myslippage,Green)   ; 
                        }
                     }
                   }
               }
               
      } 
      
      
      

}


  
void send_orderclose(int closeorder_id,double closeorderprice,int closeorderslippage,color setcolor)
 {
      
      bool backorderclose;     
      OrderSelect(closeorder_id, SELECT_BY_TICKET) ;
      backorderclose=OrderClose(closeorder_id,OrderLots(),closeorderprice,closeorderslippage,setcolor);          
      
     if(backorderclose==true) closeadd=0;
     
      if(backorderclose==false)
      {     
      closeadd++ ;
      if(closeadd>5) 
         {
            Alert("×Ô¶¯Æ½²Ö±àºÅΪ"+closeorder_id+"µÄ¶©µ¥£¬¿ÉÄÜ´æÔÚÍøÂç»ò·þÎñÆ÷ÎÊÌ⣬ÒÑÆ½²Ö¶à´Îʧ°Ü¡£ÇëÊÖ¶¯Æ½²Ö¡£");          
         }
      }
 }
 
 
      

 void send_buyorder()   
 {
          int i;     
          
          i=OrderSend(Symbol(),OP_BUY,mylots,Ask,3,0,0,"",QQ,0,Red );  
           
          if(i>0)  
               {                     
               
                  Print("ÂòÈë³É¹¦"+i);    
                        ifbuytrade=0;                                                   
                
               }
          else 
               {                  
                  Print("ÂòÈëʧ°Ü: "+ GetLastError()) ;
               }
 }      
 
 
 
 
 void send_saleorder() 
 {
       int i;         
              
          i=OrderSend(Symbol(),OP_SELL,mylots,Bid,3,0,0,"",QQ,0,Green);  
         
          if(i>0)  
               { 
               
                  Print("¹Áµ¥Èë³É¹¦"+i);     
                  ifsaletrade=0;
                              
               }
          else  
               {                  
                  Print("¹Áµ¥Èëʧ°Ü: "+ GetLastError()) ;
               }
 } 
 
  
 

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---