如何编码? - 页 74 1...676869707172737475767778798081...347 新评论 ralphronnquist 2008.02.24 00:23 #731 你是说。 if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL; [/PHP]or do you mean: [PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL; [删除] 2008.02.24 00:45 #732 谢谢你。 现在我看了看,这很明显。这招很管用。最初的回测 不是很好。是时候进行调整了。 ralphronnquist 2008.02.24 08:56 #733 Big Be: 我需要知道如何改变我未平仓订单的一半的止损。 我的理解是,这意味着开两个订单,例如0.2手和0.2手。我的EA以资金管理计算为基础来确定手数。 在一个订单的止损被改变后(基于达到的价格水平),我将让我的退出代码关闭两个订单,除非他们(现在不同)的止损被击中。 另一个订单保留其原来的止损,或可能将其上移至收支平衡。 如果初始手数(来自MM函数)是奇数,而不是四舍五入的奇数手或十数手,我想在两个订单之间不平均地分割它们。 我相信这涉及到神奇的数字,和几行代码,在这里和那里。 也许有一个具有这些功能的EA,我可以复制。 谢谢你的帮助。 大贝 你好;你在其他地方明确问过我这个问题,但是已经有了一些回复,我不知道你的问题中哪些部分可能仍然存在。这需要一个回合,你再问一下....。 BigBe 2008.02.24 17:05 #734 嗨,拉尔夫。 ralph.ronnquist: 你好;你在其他地方明确问过我这个问题,但已经有一些回复了,我不知道你的问题哪些部分可能还存在。这需要一个回合,你再问一下.... 好吧,没有一个回复真正回答了我的任何问题--有些是关于我对他人问题的回答。 因此,所有的部分仍然存在。(关于我在这个线程中发布的问题的引述,请看以前的帖子)。 谢谢。 大贝 Nerva 2008.02.24 19:48 #735 设置限价单的问题 嘿,伙计们,女士们。 我试图在我的EA中设置代码,在一个特定的价格水平上进行交易(限价单)。 这就是限价单的代码。 ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red)。 lots和BuyStopLoss是预先确定的计算值,当我把它切换到普通市场的 "OP_BUY "函数时,它们可以工作。 Ask+10*Point只是我想出的一个高于当前价格的任意值,实际上我通常使用BuyEntry,这也是预先确定的。 当我试图在策略测试器中 运行该代码时,我得到的错误是。 "2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (这是一个与止损有关的错误)。 有什么想法是导致这个错误的吗? 我想一定是我设置限价单的方式有问题,或者它在策略测试器中不能执行限价单(?),因为它在市价单中似乎工作正常。 谢谢你的帮助。 Michael 2008.02.24 21:51 #736 专家顾问生成器? Lonestar: 我对Metatrader比较陌生,但对交易并不陌生,我使用专家顾问生成器创建了一些EA。大多数工作正常,但当我使用多个出口时遇到了麻烦。用OR函数关闭(买入)逻辑和关闭(卖出)逻辑。用 "和 "创建的多个出口运行良好,但它不会识别我用 "或 "创建的任何出口。以下是退出代码。//+------------------------------------------------------------------+ //| 信号开始(退出卖出)| //+------------------------------------------------------------------+ if (CloseSell1_1 CloseSell2_2 ||CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL; 粗体部分是它所忽略的信号。有什么想法吗?这是唯一阻碍我进行正确回测的原因。如果有人能提供帮助,并且回测结果良好,你可以拥有它。通过手动过滤掉应该被关闭的交易,它看起来很有希望。 谢谢。 什么是专家顾问生成器? Linuxser 2008.02.24 23:03 #737 nondisclosure007: 什么是专家顾问生成器? 像Gordago 或这个的 东西 siddesh 2008.02.25 14:56 #738 不同的地段大小。 你好。 我可以得到一个EA的不同手数的代码吗? 例如,第一笔卖单为 0.2,第二笔卖单为0.1。 请注意。 SIDDESH Michael 2008.02.25 18:03 #739 Linuxser: 像Gordago 或这个的 东西 谢谢。 我喜欢Gordago的策略测试(不需要实际写代码)。 我需要对它为我的EA所使用的模板进行调整。 我发现自己对它所创建的东西做了一些编辑,以满足我自己的编码风格。 但总的来说,我印象很深。 我以为Gordago是一个商业产品? 我没有看到它的价格是多少。 mach_one_man 2008.02.27 21:29 #740 开仓交易时的ERR_COMMON_ERROR #2 大家好。 在前几天我遇到的NewBar问题上得到了很好的帮助后,我学到了很多东西,并在学习EA方面取得了巨大的进步。(主要是作为一个学习练习和一个非常基本的系统,我想测试一下(无疑是不赚钱的,但这是一个很好的学习练习!)。 我写了一些脚本,每一个新的条形图,它关闭当前货币对上的所有交易,然后取20期ATR值,并输入一个买入止损点和一个卖出止损点,当它从市场开盘起移动到ATR值的一半时进入市场。然后在ATR值处设置止盈(我的计算是,如果它已经走了一半,那么从当天的平均运动来看,它可能会继续冲击止盈。这可能是完全错误的,但无论如何,我想在模拟账户而不是策略测试器上 对其进行编程,以尝试价值。) 我已经对其进行了编程,并最终解决了如何使用NormalizeDouble去除小数点后的额外数字,但现在当EA试图在条形图开始时打开买入止损时,我有ERR_COMMON_ERROR或错误#2。 这是非常无助的。我已经检查了它定义的开仓、止盈和止损的值,这些看起来都是合理的,我无法找出其他可能的原因。由于GetLastError没有更多的反馈,这让我一晚上都很郁闷!请帮助我。请帮助我。 ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set { Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value); return(0); } double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp; buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset); nbuyopen=NormalizeDouble(buyopen,Digits); buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset); nbuysl=NormalizeDouble(buysl,Digits); buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset); nbuytp=NormalizeDouble(buytp,Digits); sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset); nsellopen=NormalizeDouble(sellopen,Digits); sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset); nsellsl=NormalizeDouble(sellsl,Digits); selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset); nselltp=NormalizeDouble(sellsl,Digits); Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl); int ticketbuy; ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green); if(ticketbuy<0) { Print("Buy Order failed with error #",GetLastError()); return(0); } int ticketsell; ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red); if(ticketsell<0) { Print("Buy Order failed with error #",GetLastError()); return(0); } 非常感谢任何帮助,我还附上了mt4,如果有人不介意看一下。它还包含了其他人的部分脚本,对不起,我没有注明出处,但它们都在这个网站上发布过。(如果我发布了EA,当然会注明,我发这个帖子只是想解决这个问题,因为这是我晚上的苦恼。) 霍华德 附加的文件: atr.mq4 6 kb How to code? help with my code help to find an 1...676869707172737475767778798081...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你是说。
[/PHP]or do you mean:
[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;
谢谢你。
现在我看了看,这很明显。这招很管用。最初的回测 不是很好。是时候进行调整了。
我需要知道如何改变我未平仓订单的一半的止损。 我的理解是,这意味着开两个订单,例如0.2手和0.2手。
我的EA以资金管理计算为基础来确定手数。
在一个订单的止损被改变后(基于达到的价格水平),我将让我的退出代码关闭两个订单,除非他们(现在不同)的止损被击中。
另一个订单保留其原来的止损,或可能将其上移至收支平衡。
如果初始手数(来自MM函数)是奇数,而不是四舍五入的奇数手或十数手,我想在两个订单之间不平均地分割它们。
我相信这涉及到神奇的数字,和几行代码,在这里和那里。 也许有一个具有这些功能的EA,我可以复制。
谢谢你的帮助。
大贝你好;你在其他地方明确问过我这个问题,但是已经有了一些回复,我不知道你的问题中哪些部分可能仍然存在。这需要一个回合,你再问一下....。
嗨,拉尔夫。
你好;你在其他地方明确问过我这个问题,但已经有一些回复了,我不知道你的问题哪些部分可能还存在。这需要一个回合,你再问一下....
好吧,没有一个回复真正回答了我的任何问题--有些是关于我对他人问题的回答。
因此,所有的部分仍然存在。(关于我在这个线程中发布的问题的引述,请看以前的帖子)。
谢谢。
大贝
设置限价单的问题
嘿,伙计们,女士们。
我试图在我的EA中设置代码,在一个特定的价格水平上进行交易(限价单)。 这就是限价单的代码。
ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red)。
lots和BuyStopLoss是预先确定的计算值,当我把它切换到普通市场的 "OP_BUY "函数时,它们可以工作。 Ask+10*Point只是我想出的一个高于当前价格的任意值,实际上我通常使用BuyEntry,这也是预先确定的。
当我试图在策略测试器中 运行该代码时,我得到的错误是。
"2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (这是一个与止损有关的错误)。
有什么想法是导致这个错误的吗? 我想一定是我设置限价单的方式有问题,或者它在策略测试器中不能执行限价单(?),因为它在市价单中似乎工作正常。 谢谢你的帮助。
专家顾问生成器?
我对Metatrader比较陌生,但对交易并不陌生,我使用专家顾问生成器创建了一些EA。大多数工作正常,但当我使用多个出口时遇到了麻烦。用OR函数关闭(买入)逻辑和关闭(卖出)逻辑。用 "和 "创建的多个出口运行良好,但它不会识别我用 "或 "创建的任何出口。以下是退出代码。
//+------------------------------------------------------------------+
//| 信号开始(退出卖出)|
//+------------------------------------------------------------------+
if (CloseSell1_1 CloseSell2_2 ||CloseSell3_1 > CloseSell3_2) Order = SIGNAL_CLOSESELL;
粗体部分是它所忽略的信号。有什么想法吗?这是唯一阻碍我进行正确回测的原因。如果有人能提供帮助,并且回测结果良好,你可以拥有它。通过手动过滤掉应该被关闭的交易,它看起来很有希望。
谢谢。什么是专家顾问生成器?
什么是专家顾问生成器?
像Gordago 或这个的 东西
不同的地段大小。
你好。
我可以得到一个EA的不同手数的代码吗?
例如,第一笔卖单为 0.2,第二笔卖单为0.1。
请注意。
SIDDESH
像Gordago 或这个的 东西
谢谢。 我喜欢Gordago的策略测试(不需要实际写代码)。 我需要对它为我的EA所使用的模板进行调整。 我发现自己对它所创建的东西做了一些编辑,以满足我自己的编码风格。 但总的来说,我印象很深。
我以为Gordago是一个商业产品? 我没有看到它的价格是多少。
开仓交易时的ERR_COMMON_ERROR #2
大家好。
在前几天我遇到的NewBar问题上得到了很好的帮助后,我学到了很多东西,并在学习EA方面取得了巨大的进步。(主要是作为一个学习练习和一个非常基本的系统,我想测试一下(无疑是不赚钱的,但这是一个很好的学习练习!)。
我写了一些脚本,每一个新的条形图,它关闭当前货币对上的所有交易,然后取20期ATR值,并输入一个买入止损点和一个卖出止损点,当它从市场开盘起移动到ATR值的一半时进入市场。然后在ATR值处设置止盈(我的计算是,如果它已经走了一半,那么从当天的平均运动来看,它可能会继续冲击止盈。这可能是完全错误的,但无论如何,我想在模拟账户而不是策略测试器上 对其进行编程,以尝试价值。)
我已经对其进行了编程,并最终解决了如何使用NormalizeDouble去除小数点后的额外数字,但现在当EA试图在条形图开始时打开买入止损时,我有ERR_COMMON_ERROR或错误#2。
这是非常无助的。我已经检查了它定义的开仓、止盈和止损的值,这些看起来都是合理的,我无法找出其他可能的原因。由于GetLastError没有更多的反馈,这让我一晚上都很郁闷!请帮助我。请帮助我。
if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set
{
Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);
return(0);
}
double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;
buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);
nbuyopen=NormalizeDouble(buyopen,Digits);
buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);
nbuysl=NormalizeDouble(buysl,Digits);
buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);
nbuytp=NormalizeDouble(buytp,Digits);
sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);
nsellopen=NormalizeDouble(sellopen,Digits);
sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);
nsellsl=NormalizeDouble(sellsl,Digits);
selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);
nselltp=NormalizeDouble(sellsl,Digits);
Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);
int ticketbuy;
ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);
if(ticketbuy<0)
{
Print("Buy Order failed with error #",GetLastError());
return(0);
}
int ticketsell;
ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);
if(ticketsell<0)
{
Print("Buy Order failed with error #",GetLastError());
return(0);
}非常感谢任何帮助,我还附上了mt4,如果有人不介意看一下。它还包含了其他人的部分脚本,对不起,我没有注明出处,但它们都在这个网站上发布过。(如果我发布了EA,当然会注明,我发这个帖子只是想解决这个问题,因为这是我晚上的苦恼。)
霍华德