本地跟单软件,精准跟随、实时同步 轻松实现自动跟单 MT4免费EA
指标名称:本地跟单软件
版本:MT4 ver. 2.01(EA)
我们经常在一些论坛或网站上看到一些朋友提供的观摩账户吧,可以看到别人的账户情况,遇到有实力的交易者,很是羡慕啊。
如果我们自己的账户可以跟着他们下单多好呢?今天就给大家免费共享一款智能交易EA。
可以进行本地跟单,速度快还全免费哦。
跟单EA分为发射端和接收端
-
发射端-挂在喊单信号账户上
-
接收端-跟单的账户
怎么安装,这个在EA安装教程里已经经过,这里不过多介绍,有不明白的,可以去看教程。教程在哪里?就在下一篇文章里。
1.安装发射端
打开喊单的MT4软件,双击导航里的:跟单软件发射端,然后按照以下提示勾选内容,点击确认即可。
安装好了,右上角会显示笑脸,如果没显示,检查自动交易和选项里的设置有没有正确设置。
这样,喊单软件就安装好了。
2.安装接受端
打开跟单的MT4软件,双击导航里的:跟单软件接收端,然后按照发射端一样的提示勾选内容,点击确认即可。参照上两步。
跟单与喊单不同的是参数需要设置
这里,我们需要设置对应的喊单账号,参数
如图:
最后,在喊单账户下个小单子测试跟单账户是否正常跟随。
这样,就完工了。好了,今天的学习就到这了。多研究里面的参数,多测试!
部分代码展示://+------------------------------------------------------------------+
//| 跟单发射端.mq4 |
//| Copyright © 2009-2024, www.QChaos.com |
//| https://www.qchaos.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 量化混沌, www.qchaos.com"
#property link "https://www.qchaos.com"
#property version "2.01"#property description "---------------------------------------------"
#property description "EA、指标公式分享"
#property description "EA、指标编写业务承接"
#property description "---------------------------------------------"
#property description "---------------------------------------------"#import "kernel32.dll"
int CopyFileW(string a0,string a1,int a2);
bool CreateDirectoryW(string a0,int a1);
//========================================================================
input string 跟踪主账号="";
string FILES文件夹路径="";
string 中转路径="";
string 间隔符="*";
string 中转路径2="";
string FILES文件夹路径2;
input string 货币对名称附加="";
input string 基本跟单设置模块="-----------跟单基础设置模块----------";//
input int 跟单允许秒误差=100;
input double 跟单允许点误差=100;
input bool 跟踪止损止盈=true;
input bool 跟踪平仓=true;
input bool 反向跟单=false;
input bool 跟多单=true;
input bool 跟空单=true;
input bool 跟踪挂单=true;
input string 跟单手数设置模块="-----------跟单手数设置模块----------";//
input double 单量比例=1;
input bool 使用固定单量=false;
input double 固定单量=0.1;
bool 低于最低单量时使用最低单量=false;
input string 跟单仓位设置模块="-----------跟单仓位设置模块----------";
input int 最大持单数=10000;
input double 跟主账户单量大于等于N单子=0;
input double 跟主账户单量小于等于M单子=100;
input string 跟单注释设置模块="-----------跟单注释魔术码设置模块----------";
input string 自定义部分备注="";
input string 接收订单需包含备注="";
string comm4="---------------------";
string comm5="---------------------";
string comm6="---------------------";
input string 跟单品种修正设置模块="---------个别品种无法正常跟单时使用------------";
input bool 货币对名称强制修正开关=false;
input string 所跟货币对名称1 ="";
input string 下单货币对名称1 ="";
input double 特殊跟单单量比例1=1;
input string 所跟货币对名称2 ="";
input string 下单货币对名称2 ="";
input double 特殊跟单单量比例2=1;
input string 所跟货币对名称3 ="";
input string 下单货币对名称3 ="";
input double 特殊跟单单量比例3=1;
input bool 进行尾部价格修饰=false;
input string 限定可做品种模块="------------限定可做品种模块---------";
input bool 限定可做的货币对=false;
input string 限制可做货币对1 ="";
input string 限制可做货币对2 ="";
input string 限制可做货币对3 ="";
input string 限制可做货币对4 ="";
input string 限制可做货币对5 ="";
input string 限制可做货币对6 ="";
input string 限制可做货币对7 ="";
input string 限制可做货币对8 ="";
input string 限制可做货币对9 ="";
input string 限制可做货币对10="";
string 限制可做货币对[100];
input string 限定不可做品种模块="----------限定不可做品种模块-----------";
input bool 限定不可做的货币对=false;
input string 限制不可做货币对1="";
input string 限制不可做货币对2="";
input string 限制不可做货币对3="";
input string 限制不可做货币对4="";
input string 限制不可做货币对5="";
input string 限制不可做货币对6="";
input string 限制不可做货币对7="";
input string 限制不可做货币对8="";
input string 限制不可做货币对9="";
input string 限制不可做货币对10="";
string 限制不可做货币对[100];
input string 跟单魔术码="----------跟单魔术码-----------";
bool 是否显示文字标签=true;
input int magic=666;
string comm11="---------------------";
int X=20;
int Y=20;
int Y间隔=15;
color 标签颜色1=Red;
color 标签颜色2=Green;
int 标签字体大小=10;
ENUM_BASE_CORNER 固定角=0;int OrderTicketX[200];
string OrderSymbolX[200];
int OrderTypeX[200];
double OrderLotsX[200];
double OrderStopLossX[200];
double OrderTakeProfitX[200];
string OrderCommentX[200];
int OrderMagicNumberX[200];
datetime OrderOpenTimeX[200];
double OrderOpenPriceX[200];int OrderTicketXH[200];
string OrderSymbolXH[200];
int OrderTypeXH[200];
double OrderLotsXH[200];
double OrderStopLossXH[200];
double OrderTakeProfitXH[200];
string OrderCommentXH[200];
int OrderMagicNumberXH[200];
datetime OrderOpenTimeXH[200];
double OrderOpenPriceXH[200];double 每点价值[200];
double 滑点=300;
int check;datetime 过期时间=D'2030.12.1';//时间限制
//===========================================================================
int OnInit(){限制可做货币对 [1]=限制可做货币对1;限制可做货币对 [2]=限制可做货币对2;限制可做货币对 [3]=限制可做货币对3;限制可做货币对 [4]=限制可做货币对4;限制可做货币对 [5]=限制可做货币对5;限制可做货币对 [6]=限制可做货币对6;限制可做货币对 [7]=限制可做货币对7;限制可做货币对 [8]=限制可做货币对8;限制可做货币对 [9]=限制可做货币对9;限制可做货币对[10]=限制可做货币对10;限制不可做货币对[1]=限制不可做货币对1;限制不可做货币对[2]=限制不可做货币对2;限制不可做货币对[3]=限制不可做货币对3;限制不可做货币对[4]=限制不可做货币对4;限制不可做货币对[5]=限制不可做货币对5;限制不可做货币对[6]=限制不可做货币对6;限制不可做货币对[7]=限制不可做货币对7;限制不可做货币对[8]=限制不可做货币对8;限制不可做货币对[9]=限制不可做货币对9;限制不可做货币对[10]=限制不可做货币对10;for(int ix=0; ix<200; ix++){OrderSymbolX[ix]="";OrderCommentX[ix]="";OrderSymbolXH[ix]="";OrderCommentXH[ix]="";}if(IsDllsAllowed()==false)Alert("请允许调用动态链接库");OnTick();return(INIT_SUCCEEDED);}
//===========================================================================
void OnDeinit(const int reason){for(int i=ObjectsTotal(); i>=0; i--){if(StringFind(ObjectName(i),"标签",0)==0){ObjectDelete(ObjectName(i));i=ObjectsTotal();}}ObjectsDeleteAll();Comment("");}
//===========================================================================
void OnTick(){if(TimeCurrent()>过期时间){Alert("软件到使用期限,请续费");return;}if(IsTradeAllowed()==false){Comment("不允许智能交易");return;}if(IsDllsAllowed()==false)return;if(中转路径==""){CreateDirectoryW("C:\\量化混沌编程跟单软件中转路径",0);中转路径2="C:\\量化混沌编程跟单软件中转路径";}else中转路径2=中转路径;while(true){RefreshRates();ChartRedraw();/*按钮("强制补充已平和未跟单据",180,30,160,20,CORNER_RIGHT_LOWER,clrOrangeRed,clrBlack);if(ObjectGetInteger(0,"强制补充已平和未跟单据",OBJPROP_STATE)==1)强制补充已平和未跟单据=true;else强制补充已平和未跟单据=false;*/提取信号();提取历史信号();/*ObjectSetInteger(0,"强制补充已平和未跟单据",OBJPROP_STATE,0);按钮("获利达到全平 大于",180,90,100,20,CORNER_RIGHT_LOWER,clrSpringGreen,clrBlack);EDIT标签("获利达到全平 大于-2","100000",80,90,60,20,CORNER_RIGHT_LOWER,clrWhite,clrBlack);if(ObjectGetInteger(0,"获利达到全平 大于",OBJPROP_STATE)==1)if(AccountProfit()>StrToDouble(ObjectGetString(0,"获利达到全平 大于-2",OBJPROP_TEXT))){deleteorder(-100,-1,"");ObjectSetInteger(0,"获利达到全平 大于",OBJPROP_STATE,0);}按钮("亏损达到全平 小于",180,60,100,20,CORNER_RIGHT_LOWER,clrRed,clrBlack);EDIT标签("亏损达到全平 小于-2","-100000",80,60,60,20,CORNER_RIGHT_LOWER,clrWhite,clrBlack);if(ObjectGetInteger(0,"亏损达到全平 小于",OBJPROP_STATE)==1)if(AccountProfit()<StrToDouble(ObjectGetString(0,"亏损达到全平 小于-2",OBJPROP_TEXT))){deleteorder(-100,-1,"");ObjectSetInteger(0,"亏损达到全平 小于",OBJPROP_STATE,0);}*/for(int ix=GlobalVariablesTotal(); ix>=0; ix--){int 订单号监测=GlobalVariableGet(GlobalVariableName(ix));if(OrderSelect(订单号监测,SELECT_BY_TICKET,MODE_HISTORY))if(OrderCloseTime()!=0)if(TimeCurrent()-OrderCloseTime()>=24*60*60)GlobalVariableDel(GlobalVariableName(ix));}string 内容[100];内容[0]="----------量化混沌编程本地跟单软件接收端-------------";内容[1]=" --------------已开启本地跟单接收端--------------";/*内容[2]="历史0:"+OrderTicketXH[0]+" "+OrderSymbolXH[0]+" "+OrderTypeXH[0]+" "+OrderLotsXH[0];内容[3]="历史1:"+OrderTicketXH[1]+" "+OrderSymbolXH[1]+" "+OrderTypeXH[1]+" "+OrderLotsXH[1];内容[4]="历史2:"+OrderTicketXH[2]+" "+OrderSymbolXH[2]+" "+OrderTypeXH[2]+" "+OrderLotsXH[2];内容[5]="历史3:"+OrderTicketXH[3]+" "+OrderSymbolXH[3]+" "+OrderTypeXH[3]+" "+OrderLotsXH[3];内容[6]="历史4:"+OrderTicketXH[4]+" "+OrderSymbolXH[4]+" "+OrderTypeXH[4]+" "+OrderLotsXH[4];内容[7]="历史5:"+OrderTicketXH[5]+" "+OrderSymbolXH[5]+" "+OrderTypeXH[5]+" "+OrderLotsXH[5];内容[8]="历史6:"+OrderTicketXH[6]+" "+OrderSymbolXH[6]+" "+OrderTypeXH[6]+" "+OrderLotsXH[6];内容[9]="";内容[10]="持有0:"+OrderTicketX[0]+" "+OrderSymbolX[0]+" "+OrderTypeX[0]+" "+OrderLotsX[0]+" 对应"+已跟单对应记录(OrderTicketX[0])+" 时间"+TimeToStr(OrderOpenTimeX[0]);内容[11]="持有1:"+OrderTicketX[1]+" "+OrderSymbolX[1]+" "+OrderTypeX[1]+" "+OrderLotsX[1]+" 对应"+已跟单对应记录(OrderTicketX[1])+" 时间"+TimeToStr(OrderOpenTimeX[1]);内容[12]="持有2:"+OrderTicketX[2]+" "+OrderSymbolX[2]+" "+OrderTypeX[2]+" "+OrderLotsX[2]+" 对应"+已跟单对应记录(OrderTicketX[2])+" 时间"+TimeToStr(OrderOpenTimeX[2]);内容[13]="持有3:"+OrderTicketX[3]+" "+OrderSymbolX[3]+" "+OrderTypeX[3]+" "+OrderLotsX[3]+" 对应"+已跟单对应记录(OrderTicketX[3])+" 时间"+TimeToStr(OrderOpenTimeX[3]);内容[14]="持有4:"+OrderTicketX[4]+" "+OrderSymbolX[4]+" "+OrderTypeX[4]+" "+OrderLotsX[4]+" 对应"+已跟单对应记录(OrderTicketX[4])+" 时间"+TimeToStr(OrderOpenTimeX[4]);内容[15]="持有5:"+OrderTicketX[5]+" "+OrderSymbolX[5]+" "+OrderTypeX[5]+" "+OrderLotsX[5]+" 对应"+已跟单对应记录(OrderTicketX[5])+" 时间"+TimeToStr(OrderOpenTimeX[5]);内容[16]="持有6:"+OrderTicketX[6]+" "+OrderSymbolX[6]+" "+OrderTypeX[6]+" "+OrderLotsX[6]+" 对应"+已跟单对应记录(OrderTicketX[6])+" 时间"+TimeToStr(OrderOpenTimeX[6]);for(int ixx=0; ixx<=16; ixx++)固定位置标签("标签"+ixx,内容[ixx],X,Y+Y间隔*ixx,标签颜色,标签字体大小,固定角);*/固定位置标签("标签"+0,内容[0],X,Y+Y间隔*0,标签颜色1,标签字体大小,固定角);固定位置标签("标签"+1,内容[1],X,Y+Y间隔*1,标签颜色1,标签字体大小,固定角);ChartRedraw();if(!(!IsStopped() && IsExpertEnabled() && IsTesting()==false && IsOptimization()==false))return;Sleep(300);}return;}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void 固定位置标签(string 名称,string 内容,int XX,int YX,color C,int 字体大小,int 固定角内){if(内容==EMPTY)return;if(ObjectFind(名称)==-1){ObjectDelete(名称);ObjectCreate(名称,OBJ_LABEL,0,0,0);}ObjectSet(名称,OBJPROP_XDISTANCE,XX);ObjectSet(名称,OBJPROP_YDISTANCE,YX);ObjectSetText(名称,内容,字体大小,"宋体",C);ObjectSet(名称,OBJPROP_CORNER,固定角内);ObjectSetInteger(0,名称,OBJPROP_ANCHOR,ANCHOR_LEFT);}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam){
//---OnTick();}
//+------------------------------------------------------------------+
void EDIT标签(string name,string 内容,int XX,int YX,int XL,int YL,int WZ,color A,color B){if(ObjectFind(0,name)==-1){ObjectCreate(0,name,OBJ_EDIT,0,0,0);ObjectSetString(0,name,OBJPROP_TEXT,内容);ObjectSetInteger(0,name,OBJPROP_XDISTANCE,XX);ObjectSetInteger(0,name,OBJPROP_YDISTANCE,YX);ObjectSetInteger(0,name,OBJPROP_XSIZE,XL);ObjectSetInteger(0,name,OBJPROP_YSIZE,YL);ObjectSetString(0,name,OBJPROP_FONT,"微软雅黑");ObjectSetInteger(0,name,OBJPROP_FONTSIZE,8);ObjectSetInteger(0,name,OBJPROP_CORNER,WZ);ObjectSetInteger(0,name,OBJPROP_BGCOLOR,A);ObjectSetInteger(0,name,OBJPROP_COLOR,B);}}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void 按钮(string name,int XX,int YX,int XL,int YL,int WZ,color A,color B){if(ObjectFind(0,name)==-1){ObjectCreate(0,name,OBJ_BUTTON,0,0,0);ObjectSetInteger(0,name,OBJPROP_XDISTANCE,XX);ObjectSetInteger(0,name,OBJPROP_YDISTANCE,YX);ObjectSetInteger(0,name,OBJPROP_XSIZE,XL);ObjectSetInteger(0,name,OBJPROP_YSIZE,YL);ObjectSetString(0,name,OBJPROP_TEXT,name);ObjectSetString(0,name,OBJPROP_FONT,"微软雅黑");ObjectSetInteger(0,name,OBJPROP_FONTSIZE,8);ObjectSetInteger(0,name,OBJPROP_CORNER,WZ);}if(ObjectGetInteger(0,name,OBJPROP_STATE)==1){ObjectSetInteger(0,name,OBJPROP_COLOR,A);ObjectSetInteger(0,name,OBJPROP_BGCOLOR,B);}else{ObjectSetInteger(0,name,OBJPROP_COLOR,B);ObjectSetInteger(0,name,OBJPROP_BGCOLOR,A);}}