需要编码帮助

 
我需要帮助。 我是一个编码的新手,但已经做了很长时间的外汇交易。

在 "专家顾问生成器 "的帮助下,我构建了所附的EA,它在测试中起作用。 问题是,当它被放置在几个实时图表上时,并不工作。 因为它使用的是4小时的测试,所以要花很长时间才能看到我的修正是否能修复它,我越来越沮丧了。

我已经把同一个EA重命名为5个不同的名字,并在5个不同的对子图上各放一个,都在同一个MT4平台上。 这并不奏效。

拜托,谁能看一下这个问题,并告诉我如何让代码工作,以便我可以在一个以上的货币对上使用它?
 
//+------------------------------------------------------------------+
//| 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在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。

你们不都曾是新手,需要一个好心人的帮助才能使简单的代码正常工作吗? 拜托了?

 
unclebigpete:


你们不都曾经是新手,只需要一句好话就能让简单的代码发挥作用吗? 拜托了?

是的,4年前......努力学习......你可能不想成为专家,我自己也不算是专家,但要做出一个正常运作的EA,你将需要学习正确的代码......或者,你总是可以请别人为你做这些。 工作
 

猛禽,我正在努力。 我只是想有一个可以工作的EA,我可以随着我的学习进一步发展。 我有一个工作,然后调整了一些东西,现在它不工作了。 我一直在阅读有关编码的资料,但我没有4年或更多的时间来提高速度。 请给我一点实际的帮助,因为这里所说的对我来说没有什么帮助。

这有点像学习抽烟,建议是 "点燃它"!

 
unclebigpete:

正如我所说的,我是一个编码的新手,这个EA正在/正在工作,所以我曾试图开发它,当我遇到困难时,我在这个论坛上寻求帮助。

嘲笑我的努力是个不错的尝试,但实际上却没有说任何我作为一个新手可以使用的东西。大笑是因为我请求帮助吗?

我不想也不需要成为编码专家,我只是认为,礼貌地请求帮助解决一个简单的错误(或两个),实际上会导致有人告诉我代码中的错误所在。deVries在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。

你们不都曾经是新手,需要一个好心人的帮助才能让简单的代码工作吗?拜托了?


"要花很长时间才能看到我的修正是否能解决问题,我感到很沮丧" 引自你的话

这就是你的问题所在。 你正在使用一个 "专家顾问生成器"(这是一个糟糕的编码方式....)来制作你的EA。

当这个程序在制作你的垃圾EA时,你还没有学习到知识,看不出编码有什么问题。

如果你开始自己制作EA,没有自动EA生成器

那么你会更容易发现问题,因为你知道首先要看哪里。

如果你有一个由你制作或不由你制作的EA的程序线,....

是的,这需要时间来学习,但如果你能看到自己的错误是什么,那么你的挫折感就不会那么大。

谁想使用垃圾,就停止使用那个EA Builder ....。

 
unclebigpete:

请给我一点实际的帮助。

好的,一个小小的帮助.. .

在你的代码中找到这部分,并把它改成这样 ... .

//+------------------------------------------------------------------+
//| 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。

这是最基本的 东西 ......这些问题在这个论坛上日复一日地出现 ......

而你并不了解这些,因为你并没有真正编码过任何东西 ...... 你使用的是别人的代码 ......."专家顾问生成器"。 只有一条捷径。 乔布斯

 
unclebigpete 2012.05.22 10:19

正如我所说的,我是一个编码的新手,这个EA正在/正在工作,所以我曾试图开发它,当我遇到困难时,我在这个论坛上寻求帮助。

嘲笑我的努力是个不错的尝试,但实际上却没有说任何我作为一个新手可以使用的东西。大笑是因为我请求帮助吗?

我不想也不需要成为编码专家,我只是认为,礼貌地请求帮助解决一个简单的错误(或两个),实际上会导致有人告诉我代码中的错误所在。deVries在这里打出的东西实际上对我一点帮助都没有,因为我必须学习/实践/实验几年才能理解所说的内容。

你们不都曾经是新手,需要一个好心人的帮助才能让简单的代码工作吗?拜托了?

亲爱的unclebigpete。

如果你被冒犯了,我向你道歉。我不是在嘲笑你。我过去和现在都是在嘲笑"专家顾问生成器"。

这样说吧,如果你的EA运行在4小时的数据上,那么你真的不得不等待。在4小时内,一整天只有6根蜡烛/条。还有一件事,你说你已经做了很长时间的交易,我假设你是手动交易,我假设这个EA是基于你的策略。那么,手动交易不是需要耐心吗,这个EA也是如此。

你说过这个...

unclebigpete 2012.05.22 10:52

猛龙,我正在努力。我只是想有一个可以工作的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 
 
onewithzachy:

亲爱的unclebigpete。

如果你觉得被冒犯了,我向你道歉。我不是在嘲笑你。我过去和现在都是在嘲笑"专家顾问生成器"。

我们都还在学习......即使我们没有,我们都是人,都会犯错......特别是我。 唯一不犯错的人是什么都不做的人。

顺便说一下 . . . 为什么要等待测试你的代码 ....在测试器中测试它 ...策略测试器。)