⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 [myea]my001.mq4

📁 mq4语言实现的鱼网原理的自动交易系统。支持MT4平台
💻 MQ4
字号:
//+------------------------------------------------------------------+
//|                                                  [myea]my001.mq4 |
//|                       Copyright ?2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
// 鱼网策略的测试
#property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


int count=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   Print("我的EA测试初始化");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   count++;
 
//CloseEverything();
   
 
 //if(count>0) return (0);
   Print("begin");
 int np=5;
      int cnt=0;
      int gridA[];
      int gridB[];
      
      
    if(OrdersTotal()>50) return (0);
 
      
      for(cnt=0;cnt<OrdersTotal();cnt++)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);    
      //   Print("   type=",OrderType(), "   OrderSymbol=",OrderSymbol(), "   OrderTicket=",OrderTicket(),"   OrderLots=",OrderLots(),"   OrderOpenPrice= ",OrderOpenPrice( ) );
         int k=(OrderOpenPrice( )-Ask)/0.0001;
         
         if(k>7||k<-7){
         
         OrderDelete( OrderTicket() );
         }
         
         if(k>0&&k<=np){
            //if(OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP )
            gridA[k-1]=1;
         }
           if(k<0&&k>=-np){
          //  if(OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP )
          gridA[-k-1]=1;
            }              
        } 

         Print("k=======",k);
        double p=Point;
bool TradeAllowed=false;
int gle=0;
   for(int i=0;i<=np;i++){
     if(gridA[i]==0){        
		 TradeAllowed=true;
	
		  double std1=Ask-2*p-i*p;
         double b1=std1+2*p;
         OrderSend(Symbol(),2,0.1,std1,1,std1-(7*p),b1,NULL,0,0,White);
        

        
        gle=GetLastError();
        if(gle==0)
        {
          Print("Initial BUY");
         TradeAllowed=false;
        }
         else 
        {
         Print("-----ERROR----- BUY  Ask=",Ask,"Bid=",Bid,"std1=",std1,"sl1=",Ask+p," error=",gle);
        }
        
        }
        
      
      
     
     
   if(gridB[i]==0){
   	 TradeAllowed=true;
   	 
       	double std2=Bid+2*p+i*p;
   	   double b2=std2-2*p;
         OrderSend(Symbol(),3,0.1,std2,1,std2+(7*p),b2,"",0,0,Red);
         gle=GetLastError();
        if(gle==0)
        {
         Print("Initial SELL");
         TradeAllowed=false;
        }
         else 
        {
         Print("-----ERROR----- SELL  Ask=",Ask,"Bid=",Bid,"std2=",std2,"sl2=",std2-2*p," error=",gle);
         
        }
        
     
     
     }
     }
   
  
   
  

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



int demoRun(){



  
   /*
   Print("---------------每点数",Point);
   
   Print("---------------Bid=",Bid);
   Print("---------------Ask=",Ask);
   
     Print("---------------Bars=",Bars);
   
   for(int i=0; i<Bars; i++){
       Print(Time[i], Open[i], High[i], Low[i], Close[i], Volume[i]);
   }
   */
   
   /*
   Print("---------------AccountName",AccountName());
   Print("Account margin ", AccountMargin());
   Print("Account balance = ",AccountBalance());
   Print("Account number ", AccountCredit());
   Print("account currency is ", AccountCurrency());
   Print("Account equity = ",AccountEquity());
   Print("Account free margin = ",AccountFreeMargin());
   Print("Account #",AccountNumber(), " leverage is ", AccountLeverage());
   Print("Account profit ", AccountProfit());
   */
   
   
   //订单的操作
    int cnt=0;
    for(cnt=0;cnt<OrdersTotal();cnt++)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);    
         Print("   type=",OrderType(), "   OrderSymbol=",OrderSymbol(), "   OrderTicket=",OrderTicket(),"   OrderLots=",OrderLots(),"   OrderOpenPrice= ",OrderOpenPrice( ) );
          //MarketInfo(OrderSymbol(),MODE_BID)     
        }   
        
        return (0);


}

int CloseEverything()
  {
   double myAsk;
   double myBid;
   int    myTkt;
   double myLot;
   int    myTyp;

   int i;
   bool result = false;
   int CEBuy=0,CESell=0,CEProc=0;
   for(i=OrdersTotal();i>=0;i--)
     {
      OrderSelect(i, SELECT_BY_POS);

      myAsk=MarketInfo(OrderSymbol(),MODE_ASK);            
      myBid=MarketInfo(OrderSymbol(),MODE_BID);            
      myTkt=OrderTicket();
      myLot=OrderLots();
      myTyp=OrderType();
            
      switch( myTyp )
        {
         //Close opened long positions
         case OP_BUY      :result = OrderClose(myTkt, myLot, myBid, 0, Red);
         CEBuy++;
         break;
      
         //Close opened short positions
         case OP_SELL     :result = OrderClose(myTkt, myLot, myAsk, 0, Red);
         CESell++;
         break;

         //Close pending orders
         case OP_BUYLIMIT :
         case OP_BUYSTOP  :
         case OP_SELLLIMIT:
         case OP_SELLSTOP :result = OrderDelete( OrderTicket() );
       }
    
      if(result == false)
        {
         Alert("Order " , myTkt , " failed to close. Error:" , GetLastError() );
         Print("Order " , myTkt , " failed to close. Error:" , GetLastError() );
         Sleep(3000);
        }  

      Sleep(1000);
      CEProc++;

     } //for
  
  } // closeeverything

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -