[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 81 1...747576777879808182838485868788...537 新评论 Nameless 2011.02.08 21:47 #801 extern bool BUY = true; extern int Magic = 0; extern double Lot = 0.1; extern int takeprofit = 0; extern int stoploss = 0; extern int slippage = 3; double SL,TP; int init() { return(0); } int start() { if (BUY) { if (takeprofit!=0) TP =NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss! =0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; BUY=false; } return(0); } void OPENORDER(string ord) { int error; while (true) { error=true; if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP," ,Magic,0){BUY = false;}。 } return; } [Archive!] Any rookie question, [存档!]我将免费撰写任何专家或指标。 初学者的问题 MQL4 MT4 MetaTrader Nameless 2011.02.08 21:48 #802 nemo811: 请给我一个例子。我只是在学习,还没有面对设置旗帜的任务。) 只要把这个变量改为false就可以了,在下一次勾选时,EA将不会进入这个区块,也不会再打开其他东西,直到重新启动。 Igor Makanu 2011.02.08 21:48 #803 nemo811: 请告知如何在EA中允许单次执行一个条件(如开立一个订单),而不是每次都重复执行。在这种情况下,当关闭一个头寸时,EA不应该打开一个新的头寸。我已经尝试过了,但没有达到预期效果。 提前感谢。 为什么你命名的变量中的订单票将被保存的错误? if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP,"", Magic,0){BUY = false;}。 阅读OrderSend(),我想问题会自己消失,我会这样写。 void OPENORDER(string ord) { int ticket = -1; while (ticket<0) {ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0); sleep(500); } return; } Nameless 2011.02.08 21:55 #804 IgorM: 也许你在前面读到了我说出了我的问题。他们似乎已经找到了解决方案,但我在书中找不到如何在mql中处理字符串( 如何从一行一行的数字中抽出? Владимир Тезис 2011.02.08 22:01 #805 NameLess: 也许你在前面读到了我说出了我的问题。他们似乎已经找到了解决方案,但我在书中找不到如何在mql中处理字符串( 如何从一行一行的数字中抽出? 创建一个脚本来试验MQL4的字符串函数--见这里https://docs.mql4.com/ru/strings Roma 2011.02.08 22:02 #806 零 例如,根据什么规则? Nameless 2011.02.08 22:03 #807 drknn: 创建一个试验MQL4字符串函数的脚本--见这里https://docs.mql4.com/ru/strings/StringSubstr 谢谢你! Igor Makanu 2011.02.08 22:07 #808 NameLess: 也许你在前面读到了我提出的问题。这似乎是一个解决方案,但我在书中找不到在mql中处理字符串的方法( 如何从一串数字中取出一个数字? 将一个数字转换成一个字符串https://docs.mql4.com/ru/convert/DoubleToStr 切断字符串的一部分https://docs.mql4.com/ru/strings/StringSubstr,从头开始https://docs.mql4.com/ru/strings/StringLen。 并将其转换为真正的类型https://docs.mql4.com/ru/convert/StrToDouble 这就是你需要对字符串做的所有事情,也许StrToDouble()对你来说已经足够了。 但这种 "丑陋的方法 "会切断数字,而不是四舍五入。 另一种方法:将一个实数乘以10的幂,并将结果赋予int类型--如果我没有弄错,不会有四舍五入,然后用int除以10的幂。 Nameless 2011.02.08 22:10 #809 IgorM: 将一个数字翻译成字符串https://docs.mql4.com/ru/convert/DoubleToStr 从https://docs.mql4.com/ru/strings/StringLen 的开头切下一部分字符串https://docs.mql4.com/ru/strings/StringSubstr。 并将所有的东西都转换回一个真正的类型https://docs.mql4.com/ru/convert/StrToDouble 这就是你需要对字符串做的所有事情,也许StrToDouble()对你来说已经足够了。 但这种 "丑陋的方法 "会切断数字,而不是四舍五入。 另一种方法:将一个实数乘以10到x的幂,并将结果交给int类型--如果我没有弄错,不会有四舍五入,然后用int除以10到x的幂 至少*切掉*,因为数字只能从指标中取出来,变成一个字符串......谢谢你的建议,我将进行实验) [Deleted] 2011.02.08 22:36 #810 IgorM: 无名氏 。 谢谢你的帮助。我理解设置标志的逻辑和返回订单数量 的功能。但我也对订单关闭的时刻感兴趣。看起来标志条件试图再次下单,但返回订单号的函数说少了1个订单,并且还初始化了一个仓位。如果我错过了什么,请纠正我。 1...747576777879808182838485868788...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
extern bool BUY = true;
extern int Magic = 0;
extern double Lot = 0.1;
extern int takeprofit = 0;
extern int stoploss = 0;
extern int slippage = 3;
double SL,TP;
int init() {
return(0);
}
int start()
{
if (BUY)
{
if (takeprofit!=0) TP =NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss! =0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
BUY=false;
}
return(0);
}
void OPENORDER(string ord)
{
int error;
while (true)
{ error=true;
if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP," ,Magic,0){BUY = false;}。
}
return;
}
请给我一个例子。我只是在学习,还没有面对设置旗帜的任务。)
请告知如何在EA中允许单次执行一个条件(如开立一个订单),而不是每次都重复执行。在这种情况下,当关闭一个头寸时,EA不应该打开一个新的头寸。我已经尝试过了,但没有达到预期效果。
提前感谢。为什么你命名的变量中的订单票将被保存的错误?
if (ord=="Buy") error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP,"", Magic,0){BUY = false;}。
阅读OrderSend(),我想问题会自己消失,我会这样写。
也许你在前面读到了我说出了我的问题。他们似乎已经找到了解决方案,但我在书中找不到如何在mql中处理字符串(
如何从一行一行的数字中抽出?
也许你在前面读到了我说出了我的问题。他们似乎已经找到了解决方案,但我在书中找不到如何在mql中处理字符串(
如何从一行一行的数字中抽出?
创建一个脚本来试验MQL4的字符串函数--见这里https://docs.mql4.com/ru/strings
零
例如,根据什么规则?
创建一个试验MQL4字符串函数的脚本--见这里https://docs.mql4.com/ru/strings/StringSubstr
谢谢你!
也许你在前面读到了我提出的问题。这似乎是一个解决方案,但我在书中找不到在mql中处理字符串的方法(
如何从一串数字中取出一个数字?
将一个数字转换成一个字符串https://docs.mql4.com/ru/convert/DoubleToStr
切断字符串的一部分https://docs.mql4.com/ru/strings/StringSubstr,从头开始https://docs.mql4.com/ru/strings/StringLen。
并将其转换为真正的类型https://docs.mql4.com/ru/convert/StrToDouble
这就是你需要对字符串做的所有事情,也许StrToDouble()对你来说已经足够了。
但这种 "丑陋的方法 "会切断数字,而不是四舍五入。 另一种方法:将一个实数乘以10的幂,并将结果赋予int类型--如果我没有弄错,不会有四舍五入,然后用int除以10的幂。
将一个数字翻译成字符串https://docs.mql4.com/ru/convert/DoubleToStr
从https://docs.mql4.com/ru/strings/StringLen 的开头切下一部分字符串https://docs.mql4.com/ru/strings/StringSubstr。
并将所有的东西都转换回一个真正的类型https://docs.mql4.com/ru/convert/StrToDouble
这就是你需要对字符串做的所有事情,也许StrToDouble()对你来说已经足够了。
但这种 "丑陋的方法 "会切断数字,而不是四舍五入。 另一种方法:将一个实数乘以10到x的幂,并将结果交给int类型--如果我没有弄错,不会有四舍五入,然后用int除以10到x的幂
至少*切掉*,因为数字只能从指标中取出来,变成一个字符串......谢谢你的建议,我将进行实验)
IgorM:
无名氏 。