MMA_Breakout_strategy_volume I (без MM или MF) - закодировано WhooDoo22 - страница 3

 
Почему бы вам не исправить код, который является темой этой темы, прежде чем переходить к другой версии... Вы бы многому научились, если бы сделали это.
 
Саймон,


Еще один момент...

RE: Для меня важно подчеркнуть, что мой метод кодирования был самым быстрым из всех, которые я мог соединить вместе, чтобы подтвердить мои мысли о торговой способности и ценности Volume I/II. У меня нет достаточно времени в моей жизни для того, чтобы все "правильно" закодировать с первого раза. Обычно я начинаю проекты поэтапно. Пример: Фаза 1. Охватить все функциональные основы, 2. Очистить код, 3. Добавить красоты во внешнюю визуальную сторону советника. В настоящее время я все еще работаю на фазе 1. Просто в этом советнике гораздо больше, чем в типичном советнике с отправкой ордера и закрытием ордера. Много времени и мыслей было потрачено на тестирование. Тест будет пройден после завершения первого тома. Я уверен, что вы признаете его уникальность.

С учетом сказанного, я рассматриваю другой вариант "запуска мяча" для первой функции OrderSend(). Я пока не уверен, в каком направлении буду двигаться. В конечном итоге я полностью заменю условие "if(OrdersHistoryTotal()==0){" на надежное условие. Вы сделали важное замечание о том, что над этим нужно подумать. Я ценю вашу поддержку.

Спасибо.

 
RaptorUK:

Что такое переменная и как она может быть номером билета, когда вы делаете это с ним?

В данный момент у меня есть 4 реальные сделки, их номера билетов не являются последовательными...

Знак равенства должен сделать переменную чем-то стоящим, но что это? Я думаю, я знаю, что вы имеете в виду, как это возможно, ++ - хороший вопрос.
 
WhooDoo22:
Саймон,


Еще один момент...

RE: Для меня важно подчеркнуть, что мой метод кодирования был самым быстрым, когда я мог соединить все вместе, чтобы подтвердить мои мысли о торговой способности и ценности Тома I/II. У меня нет достаточно времени в моей жизни для того, чтобы все "правильно" закодировать с первого раза.

Вы должны, по крайней мере, заставить его работать функционально правильно ... этот код очень, очень далек от этого. Я сказал "должен" ... ... это неправильно, у вас есть выбор, вы можете продолжать писать свой код и иметь гигабайты ошибок при запуске ST и иметь код, который не будет работать в Live или Demo. ... если вы хотите.
 

Саймон,

Вы должны, по крайней мере...

RE: Я не беспокоюсь о том, сколько времени потребуется для достижения цели, я просто продолжаю пахать вперед, пока проект не будет завершен. Мой выбор - не иметь гигабайтов ошибок :) Я бы предпочел выслушать конструктивную критику от коллег-кодеров, ответить и предложить свои решения для представленных проблем кодирования. Эти решения потенциально могут привести к меньшему количеству ошибок в I/II томах.

Спасибо.

 
WhooDoo22:

Саймон,

Вы должны, по крайней мере...

RE: Я не беспокоюсь о том, сколько времени потребуется для достижения цели, я просто продолжаю пахать вперед, пока проект не будет завершен. Мой выбор - не иметь гигабайтов ошибок :) Я бы предпочел выслушать конструктивную критику от коллег-кодеров, ответить и предложить свои решения для представленных проблем кодирования. Эти решения потенциально могут привести к меньшему количеству ошибок в I/II томах.

Спасибо.



То, что RaptorUK дал там, было и остается конструктивной критикой и ответными решениями на ваши коды.
 

Саймон, для решения этой задачи я буду использовать булеву переменную. Это булево условие является общим решением, которое будет решать эту проблему, пока я не достигну фазы 2. Тогда я смогу придать сигналу отправки первого порядка уникальное условие, отражающее мой стиль кодирования. Спасибо за ваш вклад.

 
WhooDoo22:

Саймон, для решения этой задачи я буду использовать булеву переменную. Это булево условие является общим решением, которое будет решать эту проблему, пока я не достигну фазы 2. Тогда я смогу придать сигналу отправки первого порядка уникальное условие, отражающее мой стиль кодирования. Спасибо за ваш вклад.

Нет, не решит... Ваше кодирование показывает, что вы не понимаете, если вы не понимаете, вы не можете это исправить.
 

Саймон, я считаю, что понимаю, а что, по вашему мнению, я не понимаю?

До сих пор мы обсуждали две важные вещи:

1. исправить аварийные блоки кода sl.

2. удалить текущее условие, "if (OrdersHistoryTotal()==0{" и заменить условие другим условием (мое текущее решение - заменить текущее условие на булево условие для начала выполнения заказов).

//example

if(x==false){OrderSend()...; x=true;}

/* now, x is true and the code block will not execute again. Of course, I would add code to save variables and if connection 
   is lost from the terminal server, all variables are saved. Simple.
   I understand the code is incorrect, but I wrote this for you to understand its concept, not a completely typed up code. */

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

Спасибо.

 
WhooDoo22:

Саймон, я думаю, что понимаю, а что, по-вашему, я не понимаю?

Первая строка в вашей функции start() такая...

   OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);

... какой номер билета он выбирает? Ну, билет был объявлен без установки начальной переменной, поэтому он будет 0, поэтому вы сразу пытаетесь выбрать билет 0, это вызовет ошибку, если вы проверили возвращаемое значение из этой OrderSend(), вы бы увидели это, это, вероятно, будет ошибка 4108 ERR_INVALID_TICKET. Если бы вы понимали, как правильно использовать OrderSend(), зачем бы вы это делали?


Если бы вы понимали OrderHistoryTotal(), вы бы не использовали ее так, как вы это сделали, и не говорили бы, что она ... "ищет торговую историю только уникальной переменной билета".

Если бы вы понимали, как работают скобки { } , вы бы не стали добавлять ненужные скобки. Они ничего не добавляют, они не делают ваш код более аккуратным или легким для чтения.

if(OrderType()==OP_BUY)                                                                     
      {
         {
         OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue
         }
      }

можно заменить на ...

if(OrderType()==OP_BUY)  
   OrderModify(ticket,0,OrderOpenPrice()-5000*Point,0,0,Blue);

Использование переменной i в качестве номера тикета показывает, что вы не понимаете, как номера тикетов работают вне тестера стратегий, т.е. на демо или реальном счете. ...


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

ticket = OrderSend(Symbol(),OP_BUY,0.05,Ask,30,0,0,"",0,0,Blue);

... Если в OrderSend() не сработаетticket will = -1, то позже в вашем коде, когда вы попытаетесь использовать эту переменную для выбора и заказа по номеру тикета -1, это явно не сработает. . .

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