Orders Execution
Indicators Used
Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---