问吧! - 页 142 1...135136137138139140141142143144145146147148149...182 新评论 increase 2008.12.12 08:39 #1411 请对一个EA提供一些帮助 我试图关闭一个卖出订单 并打开一个新的买入订单。买单打开了,但卖单却出现了4051的错误。 我正在使用 ticket = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Gold);//关闭仓位 和 ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) 。 luu 2008.12.14 06:03 #1412 如何改变神奇的数字? 大家好。 我使用差额EA(从一个原点EA复制)在差额图表窗口交易差额货币对,我想改变魔法数字,但不知道魔法数字是如何工作的?请您告诉我。 1.神奇数字是如何工作的? 2.2.如何改变神奇数字? 3.3.我可以用任何数字来改变魔法数字,还是我必须在某些规则中使用某些数字? 4.你能给我一个例子来改变我的EA的神奇数字:16763吗? 非常感谢您的帮助! luxinterior 2008.12.14 07:05 #1413 魔法号码只不过是一个唯一的标识符。它区分了同一EA的每个实例,同时也将其与你可能运行的任何其他EA区分开来。 如果魔法号码是一个外部变量,只要把它改成你想要的任何数字。只要确保它与你正在运行的任何其他EA的数字不一样。 如果它不是一个外部变量,那么在代码中寻找该变量,并将其改为你想要的任何数字。 希望这有帮助。 卢克斯 luu 2008.12.14 15:15 #1414 luxinterior: 魔法号码只不过是一个唯一的标识符。它区分了同一EA的每个实例,同时也将其与您可能运行的任何其他EA区分开来。如果这个神奇的数字是一个外部变量,就把它改成你想要的任何数字。只要确保它与你正在运行的任何其他EA的数字不一样。 如果它不是一个外部变量,那么在代码中寻找该变量,并将其改为你想要的任何数字。 希望这有帮助。 卢克斯 嗨,拉克斯。 你是说我可以把我的EA的神奇数字:16763改为16764;16765等? 谢谢你的快速回复。 卢克斯 luxinterior 2008.12.14 21:12 #1415 luu: 嗨,拉克斯。你是说我可以把我的EA的神奇数字:16763改为16764;16765等? 谢谢你的快速回复。 卢 没错!只要这个数字是唯一的,你选择什么数字并不重要。 除非你有特殊原因,否则你真的不需要改变它。 拉克斯 luu 2008.12.15 11:29 #1416 luxinterior: 正是如此!只要号码是唯一的,你选择什么号码并不重要。 除非你有特殊原因,否则你真的不需要改变它。 卢克斯 非常感谢您的帮助,Lux ! 拉乌 falanca 2008.12.15 15:21 #1417 EA平仓单问题 朋友们,我有一个带有支撑阻力指标的EA。EA必须在目标利润上完成订单,但它有时会出现问题。 [删除] 2008.12.19 00:24 #1418 请帮助提供简单的通用脚本。 尊敬的先生 有人能用简单的脚本帮助我吗? 这是我需要的。 非常通用的脚本,可用于任何符号,将放置3-4个卖出止损和买入止损的订单。 比方说,我想在现价上方20点处下一个买入止损,第二个订单在现价上方40点,第三个80点,以此类推。 卖出止损也是如此 我试图根据一些例子来编写脚本,但由于我不熟悉C语言,所以遇到了一些问题。 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""// improved.mq4 int start() { int ticket,i; int cnt=1; int Dist_SL =10; //预设SL (pt) int Dist_TP =100; // 预设TP (pt) string Symb=Symbol(); // 符号 RefreshRates()。 double bid =MarketInfo(Symb,MODE_BID); double ask =MarketInfo(Symb,MODE_ASK); double point =MarketInfo(Symb,MODE_POINT); int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL); 如果(Dist_TP < Min_Dist) // 如果它小于允许的范围 { Dist_TP=Min_Dist; // 设置允许的距离。 Alert(" 增加了TakeP的距离 = ",Dist_TP," pt")。 } //-------------------------------------------------------------------- 6 -- Alert("请求已发送至服务器,等待回复。")。 for(i=100;i<400;i=i+100) { double TP=(ask+i*Point) + Dist_TP*Point; // 要求的TP价格 ticket=OrderSend(Symb,OP_BUYSTOP,0.1,ask+i*Point,1,(ask+i*Point)-Dist_SL*Point,TP) 。 Sleep(500); int Error=GetLastError(); // 失败。 switch(Error) // 可克服的错误 { case 130:Alert("The SL is wrong. Retrying."); RefreshRates(); // 更新数据 if (Dist_SL < Min_Dist) // 如果它小于允许的范围 { Dist_SL=Min_Dist; // 设置允许的 Alert(" 增加SL的距离 = ",Dist_SL," pt")。 } i=i-50。 警报(i)。 Alert (Dist_SL); cnt=cnt+1; 警报(cnt)。 if (cnt==3)break; continue; // 在下一次迭代时 case 135:Alert("The price has changed. Retrying."); RefreshRates(); // 更新数据 continue; // 在下一次迭代时 case 136:Alert("没有价格,等待新的tick...")。 while(RefreshRates()==false) // 到一个新的tick为止 Sleep(1); // 循环延迟 continue; // 在下一次迭代时 case 146:Alert("Trading subsystem is busy. Retrying."); Sleep(500); // 简单的解决方案 RefreshRates(); // 更新数据 继续; // 在下一次迭代时 } switch(Error) //关键错误 { case 2 : Alert("普通错误。")。 break; // 退出'switch'。 case 5 : Alert("客户终端的过期版本。")。 break; // 退出'switch'。 case 64:Alert("该账户被封锁了。")。 break; //退出'switch'。 case 133:Alert("禁止交易")。 break; //退出 "开关"。 默认情况下。Alert("Occurred error",Error);// Other alternatives } //中断。 } //-------------------------------------------------------------------------- 9 -- Alert("该脚本已完成其操作---------------------------")。 return; // Exit start() } """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 它有点儿作用,但很多时候我在止损方面有问题。 Ask! [WARNING CLOSED!] Any newbie [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 sfmain 2008.12.21 04:44 #1419 这是我的想法,如果我们能把蛇和高斯SR率切换到一起。 ssrc指标,它可能会带来红利,你认为呢? 因此,它将是单边的高斯SR率矛头等级的相关性。 "osgsrspc "笑话......(我试着编码,但它超过了我的头)。 ssrc_bar.mq4 ssrc.mq4 os_gaussian_sr_rate.mq4 附加的文件: ssrc_bar.mq4 8 kb ssrc.mq4 7 kb os_gaussian_sr_rate.mq4 3 kb [删除] 2008.12.21 04:45 #1420 新问题。小数点后第五位和资金管理 在我经常去的另一个为某一特定EA客户开设的论坛上,一位客户抱怨说,EA开发者还没有为他们的EA修复小数点后第5位/小数点的定价问题。 开发者几个月前声称,这个问题需要用特殊的脚本来解决。现在,4个月后,我基本上说这是荒谬的,它还没有被修复 - 并声称它只需要几行代码来重新定义 "点",类似于这里 描述的方法。 那么问题来了。开发者仍然坚持认为这个问题超级复杂,需要特殊的脚本编程来解决。下面是开发者的解释。 嗨,约翰。你是对的。越来越多的经纪商开始使用小数点。然而,小数点的问题并不是[删除名称]的一个错误。它是MT4平台定义小数点位数差异的方式的一个问题。我们正在对EA和指标进行重新编程,以使它们能够识别这种差异。这应该包含在MT4平台内的变量 "Point "的定义中,EA使用这个定义来确定小数位数。然而,许多MT4平台不会在EA上传递超过4位的小数点,所以需要包含特殊的脚本。我们的挑战是,我们在整个EA和所有的指标中使用 "Point "变量。因此,这不是添加几行代码重新定义 "点 "那么简单。 我希望在下周末能有一个工作的小数点程序。 所以我的问题是这样的。在座的各位有经验的程序员是否遇到过这种复杂的脚本要求或与MT4平台的 "点 "值有关的问题? 即使你假设 "点 "被限制在4位小数,那么这将意味着你只需要担心点=0.001的交易----,这仍然只需要一两行代码。 或者,你可以用 "数字 "代替 "点"--这仍然只需要几行代码。 或者你可以直接使用一个布尔变量,如 "UseFractionalPips = true; "来重新定义 "Point"。 我真的觉得开发者要么是把问题搞得比实际情况更复杂(也许还有其他动机)。我从来没有读过或听说过 "点 "只限于4位小数的问题--即使是这样,你也可以使用 "数字 "或其他方法来重新定义点,而不需要一些特殊的脚本。 我使用MT4编程只有18个月,所以我想我应该向一些更有经验的程序员请教,以了解在MT4中处理小数点定价的 "解决方案 "有多复杂。 有什么想法吗? 谢谢你的帮助。 -B 1...135136137138139140141142143144145146147148149...182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请对一个EA提供一些帮助
我试图关闭一个卖出订单 并打开一个新的买入订单。买单打开了,但卖单却出现了4051的错误。
我正在使用
ticket = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Gold);//关闭仓位
和
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue) 。
如何改变神奇的数字?
大家好。
我使用差额EA(从一个原点EA复制)在差额图表窗口交易差额货币对,我想改变魔法数字,但不知道魔法数字是如何工作的?请您告诉我。
1.神奇数字是如何工作的?
2.2.如何改变神奇数字?
3.3.我可以用任何数字来改变魔法数字,还是我必须在某些规则中使用某些数字?
4.你能给我一个例子来改变我的EA的神奇数字:16763吗?
非常感谢您的帮助!
魔法号码只不过是一个唯一的标识符。它区分了同一EA的每个实例,同时也将其与你可能运行的任何其他EA区分开来。
如果魔法号码是一个外部变量,只要把它改成你想要的任何数字。只要确保它与你正在运行的任何其他EA的数字不一样。
如果它不是一个外部变量,那么在代码中寻找该变量,并将其改为你想要的任何数字。
希望这有帮助。
卢克斯
魔法号码只不过是一个唯一的标识符。它区分了同一EA的每个实例,同时也将其与您可能运行的任何其他EA区分开来。
如果这个神奇的数字是一个外部变量,就把它改成你想要的任何数字。只要确保它与你正在运行的任何其他EA的数字不一样。
如果它不是一个外部变量,那么在代码中寻找该变量,并将其改为你想要的任何数字。
希望这有帮助。
卢克斯嗨,拉克斯。
你是说我可以把我的EA的神奇数字:16763改为16764;16765等?
谢谢你的快速回复。
卢克斯
嗨,拉克斯。
你是说我可以把我的EA的神奇数字:16763改为16764;16765等?
谢谢你的快速回复。
卢没错!只要这个数字是唯一的,你选择什么数字并不重要。
除非你有特殊原因,否则你真的不需要改变它。
拉克斯
正是如此!只要号码是唯一的,你选择什么号码并不重要。
除非你有特殊原因,否则你真的不需要改变它。
卢克斯非常感谢您的帮助,Lux !
拉乌
EA平仓单问题
朋友们,我有一个带有支撑阻力指标的EA。EA必须在目标利润上完成订单,但它有时会出现问题。
请帮助提供简单的通用脚本。
尊敬的先生
有人能用简单的脚本帮助我吗?
这是我需要的。
非常通用的脚本,可用于任何符号,将放置3-4个卖出止损和买入止损的订单。
比方说,我想在现价上方20点处下一个买入止损,第二个订单在现价上方40点,第三个80点,以此类推。
卖出止损也是如此
我试图根据一些例子来编写脚本,但由于我不熟悉C语言,所以遇到了一些问题。
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""// improved.mq4
int start()
{
int ticket,i;
int cnt=1;
int Dist_SL =10; //预设SL (pt)
int Dist_TP =100; // 预设TP (pt)
string Symb=Symbol(); // 符号
RefreshRates()。
double bid =MarketInfo(Symb,MODE_BID);
double ask =MarketInfo(Symb,MODE_ASK);
double point =MarketInfo(Symb,MODE_POINT);
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);
如果(Dist_TP < Min_Dist) // 如果它小于允许的范围
{
Dist_TP=Min_Dist; // 设置允许的距离。
Alert(" 增加了TakeP的距离 = ",Dist_TP," pt")。
}
//-------------------------------------------------------------------- 6 --
Alert("请求已发送至服务器,等待回复。")。
for(i=100;i<400;i=i+100)
{
double TP=(ask+i*Point) + Dist_TP*Point; // 要求的TP价格
ticket=OrderSend(Symb,OP_BUYSTOP,0.1,ask+i*Point,1,(ask+i*Point)-Dist_SL*Point,TP) 。
Sleep(500);
int Error=GetLastError(); // 失败。![](https://c.mql5.com/forextsd/smiles/frown.png)
switch(Error) // 可克服的错误
{
case 130:Alert("The SL is wrong. Retrying.");
RefreshRates(); // 更新数据
if (Dist_SL < Min_Dist) // 如果它小于允许的范围
{
Dist_SL=Min_Dist; // 设置允许的
Alert(" 增加SL的距离 = ",Dist_SL," pt")。
}
i=i-50。
警报(i)。
Alert (Dist_SL);
cnt=cnt+1;
警报(cnt)。
if (cnt==3)break;
continue; // 在下一次迭代时
case 135:Alert("The price has changed. Retrying.");
RefreshRates(); // 更新数据
continue; // 在下一次迭代时
case 136:Alert("没有价格,等待新的tick...")。
while(RefreshRates()==false) // 到一个新的tick为止
Sleep(1); // 循环延迟
continue; // 在下一次迭代时
case 146:Alert("Trading subsystem is busy. Retrying.");
Sleep(500); // 简单的解决方案
RefreshRates(); // 更新数据
继续; // 在下一次迭代时
}
switch(Error) //关键错误
{
case 2 : Alert("普通错误。")。
break; // 退出'switch'。
case 5 : Alert("客户终端的过期版本。")。
break; // 退出'switch'。
case 64:Alert("该账户被封锁了。")。
break; //退出'switch'。
case 133:Alert("禁止交易")。
break; //退出 "开关"。
默认情况下。Alert("Occurred error",Error);// Other alternatives
}
//中断。
}
//-------------------------------------------------------------------------- 9 --
Alert("该脚本已完成其操作---------------------------")。
return; // Exit start()
}
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
它有点儿作用,但很多时候我在止损方面有问题。
这是我的想法,如果我们能把蛇和高斯SR率切换到一起。
ssrc指标,它可能会带来红利,你认为呢?
因此,它将是单边的高斯SR率矛头等级的相关性。
"osgsrspc "笑话......(我试着编码,但它超过了我的头)。
ssrc_bar.mq4
ssrc.mq4
os_gaussian_sr_rate.mq4
新问题。小数点后第五位和资金管理
在我经常去的另一个为某一特定EA客户开设的论坛上,一位客户抱怨说,EA开发者还没有为他们的EA修复小数点后第5位/小数点的定价问题。
开发者几个月前声称,这个问题需要用特殊的脚本来解决。现在,4个月后,我基本上说这是荒谬的,它还没有被修复 - 并声称它只需要几行代码来重新定义 "点",类似于这里 描述的方法。
那么问题来了。开发者仍然坚持认为这个问题超级复杂,需要特殊的脚本编程来解决。下面是开发者的解释。
所以我的问题是这样的。在座的各位有经验的程序员是否遇到过这种复杂的脚本要求或与MT4平台的 "点 "值有关的问题?
即使你假设 "点 "被限制在4位小数,那么这将意味着你只需要担心点=0.001的交易----,这仍然只需要一两行代码。
或者,你可以用 "数字 "代替 "点"--这仍然只需要几行代码。
或者你可以直接使用一个布尔变量,如 "UseFractionalPips = true; "来重新定义 "Point"。
我真的觉得开发者要么是把问题搞得比实际情况更复杂(也许还有其他动机)。我从来没有读过或听说过 "点 "只限于4位小数的问题--即使是这样,你也可以使用 "数字 "或其他方法来重新定义点,而不需要一些特殊的脚本。
我使用MT4编程只有18个月,所以我想我应该向一些更有经验的程序员请教,以了解在MT4中处理小数点定价的 "解决方案 "有多复杂。
有什么想法吗?
谢谢你的帮助。
-B