初学者的问题 MQL4 MT4 MetaTrader 4 - 页 170 1...163164165166167168169170171172173174175176177...261 新评论 Konstantin Erin 2019.02.10 17:11 #1691 ponochka:你好!我使用该功能对屏幕进行了截图。WindowScreenShot ("Screenshotname.png",1280,720); 但它把所有东西都保存在Files文件夹中,而我需要在另一个文件夹中指定路径,这样才能保存它! 使用符号链接 Vladimir Starikov 2019.02.10 21:32 #1692 你好! 最初,在专家顾问中实现了通过自由保证金紧急锁定的可能性。 以下是代码的一部分 如果(AccountFreeMargin()<= inpMarginLock){gv.isEmergencyLock = true。 ..................... 随着时间的推移,人们发现这并不完全方便。 我想通过缩减来实现紧急锁定。 比如说,当存款达到-100美元时,锁应该被激活。 我想请教一下,我是否可以添加这段代码来代替AccountFreeMargin(), 以触发 帮助我在代码中写上FreeMargin(),而不是在自由保证金上发生阻断,而是在存款上发生缩减时发生。 预先感谢!!!!!!! Andrey Sablin 2019.02.11 05:54 #1693 你好,我有一个问题,当我按下F9时,我得到了通常的菜单,以打开一个订单,但我必须选择一个符号对,而不是像以前那样,我打开的符号的菜单会消失,告诉我如何解决这个问题。 Konstantin Erin 2019.02.11 10:03 #1694 Andrey Sablin:你好,我有一个问题,当我按下F9时,我得到了通常的菜单,以打开一个订单,但我必须选择一个符号对,而不是像以前那样,我打开的符号的菜单会消失,告诉我如何解决这个问题。服务 --> 设置 --> 交易 Natall 2019.02.17 11:48 #1695 下午好) 请帮助我,我是一个新手.....,想在超级信号通道和ZigZag指标的交叉点上做一个EA,发现了一个模板。我把指标扔进去了,但订单还是打不开。这里是代码的一部分....,我做错了什么? 空白 信号(double&ar[][],bool&op[],bool&cl[]){int trd=-1;双倍up=0.0,dn=0.0。//---ArrayInitialize(cl,false)。ArrayInitialize(op,false)。//连接ZigZag过滤指标up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//名称,设置,缓冲区,BUY的起始蜡烛。dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//名称,设置,缓冲区,SELL的蜡烛开始时间如果(dn==EV) trd=0。if(up==EV) trd=0; //Comment(trd);//连接反转和退出指标up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//开始买入的蜡烛图dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//SELL的起始蜡烛图如果(up>0.0 && up<EV) cl[1]=true。如果(dn>0.0 && dn<EV) cl[0]=true。up=0.0。dn=0.0。// 基本指标,我们 通过它进入市场开关(指示器){case SuperSignalsChannel:up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//买入时的起始蜡烛图dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//SELL的起始蜡烛图突破。 P.S. 如果论坛上有类似的主题,请留下链接。 Questions from Beginners MQL4 Aleksandr SHablevskiy 2019.02.19 06:05 #1696 下午好。我有这个EA,我正试图修改它以适应我的需要,但到目前为止,它不是很好。订单在高价和低价时打开,但我需要它是高价+5点。 我知道这是负责的,但我不能在代码中应用它。我希望得到帮助。谢谢))))//+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ extern string TimeTrade = "19:00"; // Время открытия позиции extern int DistanceSet = 100; extern int TYPE = 0; extern int TP = 50; extern int SL = 4500; extern double lot = 0.1; extern int Magic_Number = 639713; int init(){ return(0);} int deinit(){ return(0);} int start() { double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0); } //---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----// int Orders_Total( int mn, string sym) { int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders); } Martingeil 2019.02.20 15:51 #1697 Aleksandr SHablevskiy: 下午好。我有这个EA,我正试图修改它以适应我的需要,但到目前为止,它不是很好。订单在高价和低价时打开,但我需要它是高价+5点。 我知道这是负责的,但我不能在代码中应用它。我希望得到帮助。谢谢))))extern string TimeTrade = "19:00"; // Время открытия позицииextern int DistanceSet = 100;extern int DistanceStopOrder = 5;extern int DistanceLimitOrder = 5;extern int TYPE = 0;extern int TP = 50;extern int SL = 4500;extern double lot = 0.1;extern int Magic_Number = 639713;int init(){ return(0);}int deinit(){ return(0);}int start(){ double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0);}//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//int Orders_Total( int mn, string sym){ int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders);//--- }//+------------------------------------------------------------------+ Questions from Beginners MQL4 How to disable expert [WARNING CLOSED!] Any newbie Aleksandr SHablevskiy 2019.02.20 20:39 #1698 Lehfr: extern string TimeTrade = "19:00"; // Время открытия позицииextern int DistanceSet = 100;extern int DistanceStopOrder = 5;extern int DistanceLimitOrder = 5;extern int TYPE = 0;extern int TP = 50;extern int SL = 4500;extern double lot = 0.1;extern int Magic_Number = 639713;int init(){ return(0);}int deinit(){ return(0);}int start(){ double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0);}//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//int Orders_Total( int mn, string sym){ int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders);//--- }//+------------------------------------------------------------------+ 谢谢你这位好心人,一切都很顺利)))) Jafas 2019.02.24 22:33 #1699 下午好,请告诉一个年轻的专家,狗被埋在哪里))。 我对Momentum进行了一些改动,经过测试,它看起来是有效的,但当我试图在专家顾问中使用它时,我得到了一些奇怪的怪事,它似乎遵循正确的算法,但我不知道额外的0,0449来自哪里。 输入 int InpMomPeriod=1; // Momentum Period空白的OnTick(){double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);} 附加的文件: GBPUSDH11.png 16 kb GBPUSDH1.png 16 kb Ruslan 2019.02.26 01:15 #1700 你好,亲爱的程序员。 为你点赞! 有一个EA,在关闭订单和发送消息后。 我需要在终端上禁用自动交易(按下按钮)。 如果用户与UPN服务器断开连接,它不会这样做。 当用户连接到cps服务器并打开终端时,窗口是打开的。 专家顾问正在运行,按下按钮可以正常工作。 但当你运行专家顾问时,断开与PPS服务器的连接 并在得到专家顾问工作的消息后 当你回到UPU时,该按钮没有被按下。 专家顾问在UPP 服务器Windows Server 16上运行。 这一部分代码负责这个功能 如果(AutotradeOFF)PressOrReleaseAutotrade()。 结论 - 当用户与VPS服务器断开连接时,这个功能不起作用。 也许有一些替代方案可以解决这个问题? 会有什么问题呢? 请帮助我解决这个问题。 代码见附件。 非常感谢您对解决这个问题的任何帮助! 附加的文件: Expert_Help_Bot.mq4 15 kb 1...163164165166167168169170171172173174175176177...261 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好!我使用该功能对屏幕进行了截图。
WindowScreenShot ("Screenshotname.png",1280,720); 但它把所有东西都保存在Files文件夹中,而我需要在另一个文件夹中指定路径,这样才能保存它!
你好!
最初,在专家顾问中实现了通过自由保证金紧急锁定的可能性。 以下是代码的一部分
如果(AccountFreeMargin()<= inpMarginLock)
{
gv.isEmergencyLock = true。
.....................
随着时间的推移,人们发现这并不完全方便。
我想通过缩减来实现紧急锁定。
比如说,当存款达到-100美元时,锁应该被激活。
我想请教一下,我是否可以添加这段代码来代替AccountFreeMargin(), 以触发
帮助我在代码中写上FreeMargin(),而不是在自由保证金上发生阻断,而是在存款上发生缩减时发生。
预先感谢!!!!!!!
你好,我有一个问题,当我按下F9时,我得到了通常的菜单,以打开一个订单,但我必须选择一个符号对,而不是像以前那样,我打开的符号的菜单会消失,告诉我如何解决这个问题。
服务 --> 设置 --> 交易
下午好)
请帮助我,我是一个新手.....,想在超级信号通道和ZigZag指标的交叉点上做一个EA,发现了一个模板。我把指标扔进去了,但订单还是打不开。这里是代码的一部分....,我做错了什么?
空白 信号(double&ar[][],bool&op[],bool&cl[])
{
int trd=-1;
双倍up=0.0,dn=0.0。
//---
ArrayInitialize(cl,false)。
ArrayInitialize(op,false)。
//连接ZigZag过滤指标
up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//名称,设置,缓冲区,BUY的起始蜡烛。
dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);//名称,设置,缓冲区,SELL的蜡烛开始时间
如果(dn==EV) trd=0。
if(up==EV) trd=0; //Comment(trd);
//连接反转和退出指标
up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//开始买入的蜡烛图
dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//SELL的起始蜡烛图
如果(up>0.0 && up<EV) cl[1]=true。
如果(dn>0.0 && dn<EV) cl[0]=true。
up=0.0。
dn=0.0。
// 基本指标,我们 通过它进入市场
开关(指示器)
{
case SuperSignalsChannel:
up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//买入时的起始蜡烛图
dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//SELL的起始蜡烛图
突破。
P.S. 如果论坛上有类似的主题,请留下链接。
下午好。我有这个EA,我正试图修改它以适应我的需要,但到目前为止,它不是很好。订单在高价和低价时打开,但我需要它是高价+5点。 我知道这是负责的,但我不能在代码中应用它。我希望得到帮助。谢谢))))
下午好。我有这个EA,我正试图修改它以适应我的需要,但到目前为止,它不是很好。订单在高价和低价时打开,但我需要它是高价+5点。 我知道这是负责的,但我不能在代码中应用它。我希望得到帮助。谢谢))))
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
下午好,请告诉一个年轻的专家,狗被埋在哪里))。
我对Momentum进行了一些改动,经过测试,它看起来是有效的,但当我试图在专家顾问中使用它时,我得到了一些奇怪的怪事,它似乎遵循正确的算法,但我不知道额外的0,0449来自哪里。
输入 int InpMomPeriod=1; // Momentum Period
空白的OnTick()
{
double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);
}
你好,亲爱的程序员。
为你点赞!
有一个EA,在关闭订单和发送消息后。
我需要在终端上禁用自动交易(按下按钮)。
如果用户与UPN服务器断开连接,它不会这样做。
当用户连接到cps服务器并打开终端时,窗口是打开的。
专家顾问正在运行,按下按钮可以正常工作。
但当你运行专家顾问时,断开与PPS服务器的连接
并在得到专家顾问工作的消息后
当你回到UPU时,该按钮没有被按下。
专家顾问在UPP 服务器Windows Server 16上运行。
这一部分代码负责这个功能
如果(AutotradeOFF)PressOrReleaseAutotrade()。
结论 - 当用户与VPS服务器断开连接时,这个功能不起作用。
也许有一些替代方案可以解决这个问题?
会有什么问题呢?
请帮助我解决这个问题。
代码见附件。
非常感谢您对解决这个问题的任何帮助!