#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.iebb.cn"
#property version "1.00"
#property strict
bool isRight = true;//默认显示在右边
int magic = 345;
double lots=0.1;//下单手数
//=============================配置完成===================================
/**初始化**/
int OnInit() {
drawRightPanel();
return(INIT_SUCCEEDED);
}
/**按钮处理事件**/
void OnChartEvent(const int id, const long &lparam, const double &dparam,
const string &sparam) {
if(id == CHARTEVENT_OBJECT_CLICK){//过滤,只能是点击事件
if("buy_act" == sparam){//点击买入按钮
lots = StrToDouble(ObjectGetString(0,"lots_num",OBJPROP_TEXT));//手数
int sun = StrToInteger(ObjectGetString(0,"stop_num",OBJPROP_TEXT));//止损点
int ying = StrToInteger(ObjectGetString(0,"profit_num",OBJPROP_TEXT));//止赢点
int hua = StrToInteger(ObjectGetString(0,"move_point_num",OBJPROP_TEXT));//止赢点
orderBuy(lots,sun,ying,hua,Symbol()+"1");
}else if("sell_act" == sparam){//点击卖出按钮
lots = StrToDouble(ObjectGetString(0,"lots_num",OBJPROP_TEXT));//手数
int sun = StrToInteger(ObjectGetString(0,"stop_num",OBJPROP_TEXT));//止损点
int ying = StrToInteger(ObjectGetString(0,"profit_num",OBJPROP_TEXT));//止赢点
int hua = StrToInteger(ObjectGetString(0,"move_point_num",OBJPROP_TEXT));//止赢点
orderSell(lots,sun,ying,hua,Symbol()+"2");
}
}
}
/**
* 画右边的面板
**/
void drawRightPanel(){
drawButton("lots_name","手 数",clrDarkGray,150,69,65);
drawEditText("lots_num","1",clrDarkGray,80,69);
drawButton("buy_act","买入/Buy",clrRed,150,100,65);
drawButton("sell_act","卖出/Sell",clrLime,80,100,65);
}
/*
* 一键开多单
* lots:下单量
* sun:止损
* ying:止赢
* comment:标记
* magic:魔术号
*/
int orderSell(double Lots,int sun,int ying,int movePoint,string comment){
int ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,movePoint,0,0,comment,magic,0,clrWhite);
if(ticket>0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)==true) {
if((sun!=0)&&(ying!=0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,clrWhite);
}
if((sun==0)&&(ying!=0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()-ying*MarketInfo(Symbol(),MODE_POINT),0,clrWhite);
}
if((sun!=0)&&(ying==0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+sun*MarketInfo(Symbol(),MODE_POINT),0,0,clrWhite);
}
}
}else{
Alert("下空单失败: "+GetLastError());
}
return(ticket);
}
/*
* 一键开多单
* lots:下单量
* sun:止损
* ying:止赢
* comment:标记
* magic:魔术号
*/
int orderBuy(double Lots,int sun,int ying,int movePoint,string comment) {
int ticket=OrderSend(Symbol( ) ,OP_BUY,Lots,Ask,movePoint,0,0,comment,magic,0,clrRed);
if(ticket>0) {
if(OrderSelect(ticket, SELECT_BY_TICKET)==true) {
if((sun!=0)&&(ying!=0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,clrRed);
}
if((sun==0)&&(ying!=0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+ying*MarketInfo(Symbol(),MODE_POINT),0,clrRed);
}
if((sun!=0)&&(ying==0)) {
bool isModify = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-sun*MarketInfo(Symbol(),MODE_POINT),0,0,clrRed);
}
}
}else{
Alert("下多单失败: "+GetLastError());
}
return(ticket);
}
/**
* 画按钮,文字或者按钮
* @parmes name 按钮名
* @parmes text 按钮上显示的内容
* @parmes textSize 按钮上文字的大小
* @parmes textColor 文字颜色
* @parmes bgColor 背景颜色
* @parmes borderColor 边框颜色
* @parmes x X轴
* @parmes y Y轴
* @parmes width 按钮的宽
*/
void drawButton(string name, string text, color bgColor,int x, int y, int width){
int coord = 0;//默认相对坐标在左上
if(isRight == true){
coord = 1;
}
ObjectCreate(0,name,OBJ_BUTTON,0,0,0);//参见11
ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);//文字颜色
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bgColor);//背景颜色
ObjectSetInteger(1,name,OBJPROP_BORDER_COLOR,clrWhite);//设置边框颜色
//设置坐标
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSet(name,OBJPROP_CORNER,coord);//设置默认中心点在右上
//int as=StringLen(text);
ObjectSetInteger(0,name,OBJPROP_XSIZE,width);//设置宽
ObjectSetInteger(0,name,OBJPROP_YSIZE,25);//设置高
ObjectSetString(0,name,OBJPROP_FONT,"Arial");//设置字体
ObjectSetString(0,name,OBJPROP_TEXT,text);//设置内容
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);//设置字号
}
/**
* 在页面上画输入框
*/
void drawEditText(string name,string defText,color bgColor,int x,int y){
int coord = 0;//默认相对坐标在左上
if(isRight == true){
coord = 1;
}
ObjectCreate(0,name,OBJ_EDIT,0,0,0);
//设置坐标
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSet(name,OBJPROP_CORNER,coord);//设置默认中心点在右下
//设置宽高
ObjectSetInteger(0,name,OBJPROP_XSIZE,66);//宽
ObjectSetInteger(0,name,OBJPROP_YSIZE,25);//高
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);//字号
ObjectSetInteger(0,name,OBJPROP_ALIGN,ALIGN_LEFT);//文字靠左
ObjectSetInteger(0,name,OBJPROP_READONLY,false);//是否只读模式
ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);//文字颜色
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bgColor);//背景色
ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrGold);//边框色
ObjectSetInteger(0,name,OBJPROP_BACK,false);//显示在前景 (false) 或背景 (true)
ObjectSetString(0,name,OBJPROP_TEXT,defText);//设置默认文字
}
版权声明
本文仅代表作者观点,不代表牛人量化交易网立场。
本文系作者授权牛人量化交易网发表,未经许可,不得转载。
评论列表
发表评论