нужна помощь в кодировании, пожалуйста

 
Мне нужна помощь, пожалуйста. Я новичок в кодировании, но торгую на форекс уже очень давно.

С помощью "Конструктора советников" я создал прилагаемый советник, который работает при тестировании. Проблема в том, что он не работает при размещении на нескольких живых графиках. Поскольку в нем используется 4-часовой тест, это долгое время, чтобы увидеть, исправляют ли мои исправления, и я начинаю расстраиваться.

Я переименовал один и тот же советник в 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)                                           |
//+------------------------------------------------------------------+

Чтобы показать, какой это плохой конструктор советников, я скопировал несколько строк

Он не использует magicnumber сделок, когда проверяет открытые сделки

Этот советник может управлять сделками, которые вы не хотите, чтобы этот советник изменял.

Он считает вверх, проверяя сделки, и в этом общем цикле он также будет закрывать сделки, тогда он должен считать вниз.

 

И независимо от результата Orderselect() мы продолжаем выполнение следующего блока.

LOL

 

Как я уже сказал, я новичок в кодировании, и этот советник работает, поэтому я попытался развить его, и когда я оказался в тупике, я попросил помощи на этом форуме.

Хорошая попытка посмеяться над моими усилиями, не сказав ничего, что я, как новичок, мог бы использовать. LOL - это потому что я попросил о помощи?

Я не хочу или должен стать экспертом в кодировании, я просто предположил, что вежливая просьба о помощи в решении простой ошибки (или двух) действительно приведет к тому, что кто-то посоветует мне, где в коде ошибка. То, что deVries напечатал здесь, фактически НЕ ПОМОГАЕТ мне вообще, так как мне пришлось бы учиться/практиковаться/экспериментировать, возможно, годами, чтобы хотя бы понять сказанное.

Разве все вы не были когда-то новичками и нуждались в добром слове помощи, чтобы заставить простые коды работать? Пожалуйста?

 
unclebigpete:


Разве не все вы когда-то были новичками и нуждались в добром слове помощи, чтобы заставить простые коды работать? Пожалуйста?

Да, 4 года назад ... приложите некоторые усилия, чтобы научиться ... вы можете не хотеть быть экспертом, я не считаю себя экспертом, но чтобы сделать правильно функционирующий советник, вам НАДО научиться правильно кодировать ... в качестве альтернативы вы всегда можете попросить кого-то другого сделать это за вас: Работа
 

Раптор, я прилагаю усилия. Мне просто нужен работающий советник, который я смогу развивать по мере обучения. Этот у меня работал, а потом я что-то подправил, и теперь он не работает. Я читал о кодировании, но у меня нет 4 или более лет, чтобы войти в курс дела. Просто небольшая реальная помощь, пожалуйста, поскольку то, что было сказано здесь, не очень-то мне помогает.

Это похоже на обучение курению сигарет, когда совет "прикуривай"!

 
unclebigpete:

Как я уже сказал, я новичок в кодировании, и этот советник работает, поэтому я попытался развить его, а когда я оказался в тупике, я попросил помощи на этом форуме.

Хорошая попытка посмеяться над моими усилиями, не сказав ничего, что я, как новичок, мог бы использовать. LOL - это потому что я попросил о помощи?

Я не хочу или должен стать экспертом в кодировании, я просто предположил, что вежливая просьба о помощи в решении простой ошибки (или двух) действительно приведет к тому, что кто-то посоветует мне, где в коде ошибка. То, что deVries напечатал здесь, фактически НЕ ПОМОГАЕТ мне вообще, так как мне пришлось бы учиться/практиковаться/экспериментировать, возможно, годами, чтобы хотя бы понять сказанное.

Разве все вы не были когда-то новичками и нуждались в добром слове помощи, чтобы заставить простые коды работать? Пожалуйста?


"Это занимает много времени, чтобы проверить, исправляют ли мои исправления, и я расстраиваюсь" - цитата из вас.

Вот какая у вас проблема. Вы используете "Expert Advisor 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-значных брокеров ... как и ваш TP или SL.

Если вы сделаете SL маленьким, вы получите ошибку 130, потому что вы не проверяете, не слишком ли он близок, и не учитываете спред.

Является ли ваш брокер ECN-брокером? Вы не можете установить SL и или TP, когда вы размещаете рыночный ордер у ECN-брокера, вам нужно ввести код OredrModify(), чтобы добавить SL и или TP после размещения ордера. ...

Мне продолжать? Это элементарные вещи... эти вопросы поднимаются на этом форуме изо дня в день...

И вы не понимаете многого из этого, потому что вы на самом деле ничего не кодировали ... вы использовали чужой код. ... " Построитель советников". Есть только один короткий путь: Работа

 
unclebigpete 2012.05.22 10:19

Как я уже сказал, я новичок в кодировании, и этот советник работает/работал, поэтому я попытался развить его, и когда я оказался в тупике, я попросил помощи на этом форуме.

Хорошая попытка посмеяться над моими усилиями, не сказав ничего, что я, как новичок, мог бы использовать. LOL - это потому что я попросил о помощи?

Я не хочу или должен стать экспертом в кодировании, я просто предположил, что вежливая просьба о помощи в решении простой ошибки (или двух) действительно приведет к тому, что кто-то посоветует мне, где в коде ошибка. То, что deVries напечатал здесь, фактически НЕ ПОМОГАЕТ мне вообще, так как мне пришлось бы учиться/практиковаться/экспериментировать, возможно, годами, чтобы хотя бы понять сказанное.

Разве все вы не были когда-то новичками и нуждались в добром слове помощи, чтобы заставить простые коды работать? Пожалуйста?

Уважаемый unclebigpete,

Приношу свои извинения, если вы обиделись. Я не смеялся над вами. Я смеялся и до сих пор смеюсь над "Expert Advisor Builder". Я был новичком 4 года назад, задавал много глупых вопросов, - черт возьми, я все еще учусь сейчас - некоторые форумчане здесь поправляют меня и мой код, и я принимаю это, я также учусь на чужом коде - спросите RaptorUK об этом - он поправил меня в прошлое воскресенье и о том, что история загружается.

Если ваш советник работает на 4-часовых данных, то вам действительно придется подождать. Один полный день имеет только 6 свечей/баров на 4 часа. Еще одна вещь, вы сказали, что торгуете уже давно, и я предполагаю, что вы торгуете вручную, и я предполагаю, что этот советник основан на вашей стратегии. Разве ручная торговля не требует терпения? То же самое и с этим советником.

Вы сказали это ...

unclebigpete 2012.05.22 10:52

Раптор, я прилагаю усилия. Я просто хочу иметь работающий советник, который я могу развивать по мере того, как я учусь. Этот у меня работал, а потом я что-то подправил, и теперь он не работает. Я читал о кодировании, но у меня нет 4 или более лет, чтобы войти в курс дела. Просто небольшая реальная помощь, пожалуйста, поскольку то, что было сказано здесь, не очень-то мне помогает.

Это немного похоже на обучение курению сигареты, когда совет - "прикуривай"!

Тогда мой вопрос: стоп..., какую именно часть вы подправили? Теперь вы просите нас найти ошибку и исправить ее.

Я посмотрел на ваш код позже, и btw, .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:

Дорогой дядя Бигпет,

Приношу свои извинения, если вы обиделись. Я не смеялся над вами. Я смеялся и до сих пор смеюсь над "Expert Advisor Builder". Я был новичком 4 года назад, задавал много глупых вопросов, - черт возьми, я все еще учусь сейчас - некоторые форумчане здесь поправляют меня и мой код, и я принимаю это, я также учусь на чужом коде - спросите об этом RaptorUK - он поправил меня в прошлое воскресенье, и эта вещь с загрузкой истории.

Мы все все еще учимся ... и даже если бы это было не так, мы все люди и все делаем ошибки ... я особенно. Единственный человек, который не делает ошибок - это человек, который ничего не делает...

Кстати... зачем ждать, чтобы протестировать свой код. ... тестируйте его в тестере... Тестере стратегий. ;-)

Причина обращения: