//+------------------------------------------------------------------+ //| QQE 4hr_15min TESTING | //| triggers on 4 hour QQE, then uses 15 min QQE to enter trade. | //+------------------------------------------------------------------+ #property copyright "Expert Advisor Builder" #property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/" //Check position bool IsTrade = False; for(int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) { IsTrade = True; if(OrderType() == OP_BUY) { //Close //+------------------------------------------------------------------+ //| Signal Begin (Exit Buy) | //+------------------------------------------------------------------+
为了显示这是一个糟糕的专家顾问构建器,我复制了几行内容
当它检查 未平仓的交易时,它没有使用交易的神奇数字。
这个EA可以管理你不希望被这个EA改变的交易。
它正在检查交易,在这个总的循环中,它也会关闭交易,然后它必须倒数......。
不管Orderselect()的结果如何,我们都要继续执行下一个块。
大笑
正如我所说,我是一个编码新手,而这个EA正在/曾经工作,所以我曾试图开发它,当我遇到困难时,我在这个论坛上寻求帮助。
嘲笑我的努力是个不错的尝试,但实际上却没有说任何我作为一个新手可以使用的东西。 大笑是因为我请求帮助吗?
我不想也不需要成为编码专家,我只是认为,礼貌地请求帮助解决一个简单的错误(或两个),实际上会导致有人告诉我代码中的错误所在。 deVries在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。
你们不都曾是新手,需要一个好心人的帮助才能使简单的代码正常工作吗? 拜托了?
猛禽,我正在努力。 我只是想有一个可以工作的EA,我可以随着我的学习进一步发展。 我有一个工作,然后调整了一些东西,现在它不工作了。 我一直在阅读有关编码的资料,但我没有4年或更多的时间来提高速度。 请给我一点实际的帮助,因为这里所说的对我来说没有什么帮助。
这有点像学习抽烟,建议是 "点燃它"!
正如我所说的,我是一个编码的新手,这个EA正在/正在工作,所以我曾试图开发它,当我遇到困难时,我在这个论坛上寻求帮助。
嘲笑我的努力是个不错的尝试,但实际上却没有说任何我作为一个新手可以使用的东西。大笑是因为我请求帮助吗?
我不想也不需要成为编码专家,我只是认为,礼貌地请求帮助解决一个简单的错误(或两个),实际上会导致有人告诉我代码中的错误所在。deVries在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。
你们不都曾经是新手,需要一个好心人的帮助才能让简单的代码工作吗?拜托了?
"要花很长时间才能看到我的修正是否能解决问题,我感到很沮丧" 引自你的话
这就是你的问题所在。 你正在使用一个 "专家顾问生成器"(这是一个糟糕的编码方式....)来制作你的EA。
当这个程序在制作你的垃圾EA时,你还没有学习到知识,看不出编码有什么问题。
如果你开始自己制作EA,没有自动EA生成器
那么你会更容易发现问题,因为你知道首先要看哪里。
如果你有一个由你制作或不由你制作的EA的程序线,....
是的,这需要时间来学习,但如果你能看到自己的错误是什么,那么你的挫折感就不会那么大。
谁想使用垃圾,就停止使用那个EA Builder ....。
请给我一点实际的帮助。
好的,一个小小的帮助.. .
在你的代码中找到这部分,并把它改成这样 ... .
//+------------------------------------------------------------------+ //| Variable End | //+------------------------------------------------------------------+ //Check position bool IsTrade = False; for(int i = Total -1; i >= 0; i --) { if( OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() <= OP_SELL && OrderSymbol() == Symbol())
这没有检查 "神奇数字"......如果你想在同一货币对上下达手动订单,或者你想在同一货币对上同时运行不同的时间框架,你就需要把它加进去......你会吗?
Bars 是不可靠的,使用Bars 是个坏主意,你应该使用Time。
你的滑点没有针对4/5位数的经纪商进行调整 ......你的止损或止盈也没有。
如果你把你的SL做得很小,你会得到错误的130,因为你没有检查它是否太近或允许点差的存在。
你的经纪商是ECN经纪商吗?当你向ECN经纪商下市场订单时,你不能设置SL和TP,你必须在下单后用OredrModify()代码添加SL和TP。
这是最基本的 东西 ......这些问题在这个论坛上日复一日地出现 ......
而你并不了解这些,因为你并没有真正编码过任何东西 ...... 你使用的是别人的代码 ......."专家顾问生成器"。 只有一条捷径。 乔布斯
正如我所说的,我是一个编码的新手,这个EA正在/正在工作,所以我曾试图开发它,当我遇到困难时,我在这个论坛上寻求帮助。
嘲笑我的努力是个不错的尝试,但实际上却没有说任何我作为一个新手可以使用的东西。大笑是因为我请求帮助吗?
我不想也不需要成为编码专家,我只是认为,礼貌地请求帮助解决一个简单的错误(或两个),实际上会导致有人告诉我代码中的错误所在。deVries在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。
你们不都曾经是新手,需要一个好心人的帮助才能让简单的代码工作吗?拜托了?
亲爱的unclebigpete。
如果你被冒犯了,我向你道歉。我不是在嘲笑你。我过去和现在都是在嘲笑"专家顾问生成器"。
这样说吧,如果你的EA运行在4小时的数据上,那么你真的不得不等待。在4小时内,一整天只有6根蜡烛/条。还有一件事,你说你已经做了很长时间的交易,我假设你是手动交易,我假设这个EA是基于你的策略。那么,手动交易不是需要耐心吗,这个EA也是如此。
你说过这个...
猛龙,我正在努力。我只是想有一个可以工作的EA,我可以随着我的学习进一步发展。 我有一个工作,然后调整了一些东西,现在它不 工作了。我一直在阅读有关编码的资料,但我没有4年或更多的时间来提高速度。请给我一点实际的帮助,因为这里所说的对我来说没有什么帮助。
这有点像学习抽烟,建议是 "点燃它"!
那么我的问题是,哇......,你调整的是哪一部分?现在你要求我们找出错误并加以修正。
我后来看了看你的代码,还有,.ex文件是编译过的文件,这没有什么帮助。
:)
让我们举个例子来说明为什么 "你的 "代码是坏的。. . .
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink); if(Ticket > 0) { if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened : ", OrderOpenPrice()); if(SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } // if(Order... else // <--- this else is in relation to the OrderSelect, so when the OrderSelect fails the error stored in GetLastError is updated { Print("Error opening SELL order : ", GetLastError()); // <--- this will give you Error 0 and you will be scratching your head } // else } // if(Ticket...
报告的错误与OrderSelect 而不是OrderSend 有关。
它应该这样做 . .
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink); if(Ticket < 0) { Print("Error opening SELL order : ", GetLastError()); // <--- this will give you Error that relates to the OrderSend } // if(Ticket... else // <--- this else is in relation to the if(Ticket < 0) { if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened : ", OrderOpenPrice()); if(SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } // if(Order... } // else