советник - разные вопросы - страница 18

 

Marco vd Heijden:

Ну, если вы действительно хотите ждать каждого тика, вам придется написать отдельный советник для каждого символа и использовать функцию OnTick().
Но я могу сказать, что я также программирую микроконтроллеры, и они находятся в бесконечном цикле (вечно), пока не произойдет сбой питания или прерывание.
Чтобы проверить, истинно или ложно условие, используется самый маленький тип данных Boolean, и ваш процессор уже делает это миллионы, если не миллиарды раз в секунду со всеми процессами, работающими в фоновом режиме, графикой и т.д.
Когда вы начинаете выполнять тяжелые вычисления с использованием больших типов данных, это становится проблемой.

Расчеты #Ордеров и обновленияинформации о счетах- Закрыто

Спасибо за комментарий.

Отдельный советник, о! Я действительно не люблю играть в несколько советников.
Может быть, я буду использовать непрерывные циклы, даже иногда циклы просто так.

// I hope one of below them will work for me
EventSetMillisecondTimer( 750 );
EventSetTimer( 1 );

Я не думаю, что мой ПК такой слабый, надеюсь, он сможет мне помочь.
...тяжелые расчеты... хм, действительно я не знаю - "Ордера Sell, Buy, Profit, All positions" расчеты тяжелые или что? Это тяжелые, пожалуйста?

Итак, спасибо за ваши комментарии.
Всего наилучшего.

 

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

Вот пример того, что он может легко сделать.


Здесь запрашиваются объемы на всех таймфреймах по всем символам, а также первая строка - спред по всем доступным символам.

Теперь он должен отсортировать от min до max по всем переменным для всех символов, так что это большая работа.



Или вот это - многосимвольная матрица Ренко.

Вертикальный компонент укладки кирпичей удален, теперь он укладывает кирпичи по 40 пунктов горизонтально, что позволяет сравнивать все символы друг с другом на одном графике.

Обычно это 26 отдельных графиков Ренко, что сделало бы ОЧЕНЬ трудным их сравнение, но с этим типом это можно сделать в мгновение ока.

Конечно, он должен отслеживать движение для 26 символов, что также является большой работой, но не совсем для хорошего и быстрого компьютера, так что, надеюсь, вы поняли суть.

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

 

Marco vd Heijden:

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

Спасибо за комментарий.

Я просто должен сказать, что если я пойду в это, я точно знаю, что выйду оттуда как кодер или программист. (Потому что если кому-то нужно это делать, он может быть кодером или программистом...)
Это займет у меня много времени. Просто сдаюсь...

Я думаю, я могу закрыть эту подтему, потому что я беспокоюсь, что это займет у меня много времени.
Иногда я теряю себя в этой Code Industry.
В любом случае, до сих пор я многое почерпнул из этой индустрии кода.

После вашего последнего комментария я думаю, что если бы мне нужно было получить только тики символов панели Terminal Trade, я мог бы попробовать очень разные способы (но на самом деле мои знания кода не могут дать мне такую возможность).
Также я думаю, неужели я первый человек, который думает о тиках панели Terminal Trade?! (Я бы не хотел, чтобы это было так).

Давным-давно я видел несколько советников с приборной панелью - мне не очень интересен этот тип советников, он абсолютно не полезен для меня.

Большое спасибо за ваши попытки помочь мне.

(Английский не является моим родным языком)

 

Это займет время, но не навсегда.

И когда вы станете умнее, вы также станете быстрее благодаря опыту.

Начало - самая трудная часть.

Вы можете сделать его настолько простым или сложным, насколько захотите.

Но легче начинать с простых вещей.

Но какова ваша цель: вы хотите стать хорошим кодером? или вы хотите стать хорошим трейдером? или и то, и другое?

 

Marco vd Heijden:

Это занимает время, но не навсегда.
И когда вы станете умнее, вы также станете быстрее благодаря опыту.
Начало - самая трудная часть.
Вы можете сделать его настолько простым или настолько сложным, насколько захотите.
Но легче начинать с простых вещей.
Но какова ваша цель: вы хотите стать хорошим кодером? или вы хотите стать хорошим трейдером? или и то, и другое?

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

Да, верно, когда я начал писать скрипт для моего советника Trade Panel, я начал с простых вещей, но теперь я люблю свой советник Trade Panel. Да, это заняло у меня много времени, но оно того стоит.

На самом деле, сегодня я не думаю, что стану кодером и программистом. Но это не значит, что я не знаю, что такое кодер и программист.
Иногда у меня есть идея, но я думаю, что не могу этого сделать, думаю, что это невозможно.
Есть только одна причина - это мое плохое знание кода.
Также я не могу записать эти идеи, но я не знаю почему!

Да! Сегодня я хочу стать хорошим трейдером, а не кодером.

Спасибо за ваше время.

 

Вы можете представить это в виде блок-схемы, это немного проще.

Вот пример:

Вы можете сделать их бесплатно на http://draw.io

draw.io - free flowchart maker and diagrams online
draw.io - free flowchart maker and diagrams online
  • draw.io
draw.io (formerly Diagramly) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit diagram maker, and more. draw.io can import .vsdx, Gliffy™ and Lucidchart™ files .
 
Marco vd Heijden:

Вы можете представить это в виде блок-схемы, это немного проще.
Вот пример:
Вы можете сделать их бесплатно на http://draw.io

Вау, спасибо, что поделился со мной.
Я попробую, когда у меня будет время.

Спасибо большое.

 

#Spread Lines - Open

Вопрос: Если я использую несколько объектов TrendLine, должен ли я использовать функцию ' ObjectMove ' для каждого из них?
Просто я ищу умные методы для них, пожалуйста, дайте мне совет или помогите примером.

ObjectMove( name, 0, Time[0], Bid );
ObjectMove( name, 1, Time[0] + ( PeriodSeconds( NULL ) * 1 ), Bid );

Как вы знаете, если я использую объекты TrendLine для спредовых линий, размеры объектов TrendLine могут меняться на разных таймфреймах и масштабах графика.
Q: Как я могу узнать об этом на примере?

Q: Кроме того, мне нужно написать этот скрипт в торговой панели моего советника, что вы посоветуете, пожалуйста?

Заранее спасибо.

 

Вы имеете в виду вертикальную линию, движущуюся по ценовому уровню, горизонтальную линию, движущуюся по оси времени, или линию тренда по углу, которая движется вдоль обеих?

Вы можете либо переместить их с помощью ObjectMove(), либо удалить их и нарисовать новые.

Если это зависит от таймфрейма, вы можете использовать переключатель таймфреймов, опубликованный несколько страниц назад.

Я всегда удаляю все при переключении на другой таймфрейм в OnDeinit() и затем рисую новые в OnInit() или отдельной функции draw().

Если вам нужны просто линии спреда, то они одинаковы на любом таймфрейме, поэтому вы можете просто создать две или три в Oninit() и переместить их в OnTick().

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
          
   ObjectCreate("Ask",OBJ_HLINE,0,0,Ask);ObjectSetInteger(0,"Ask",OBJPROP_COLOR,clrGold);ObjectSetInteger(0,"Ask",OBJPROP_WIDTH,1);
   ObjectCreate("Bid",OBJ_HLINE,0,0,Bid);ObjectSetInteger(0,"Bid",OBJPROP_COLOR,clrGold);ObjectSetInteger(0,"Bid",OBJPROP_WIDTH,1);
   ObjectCreate("Center",OBJ_HLINE,0,0,(Ask+Bid)/2);

   ObjectSetInteger(0,"Ask",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Bid",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Center",OBJPROP_SELECTABLE,false);

   ObjectSetInteger(0,"Ask",OBJPROP_BACK,true);
   ObjectSetInteger(0,"Bid",OBJPROP_BACK,true);
   ObjectSetInteger(0,"Center",OBJPROP_BACK,true);

   ObjectSetInteger(0,"Center",OBJPROP_COLOR,clrDeepSkyBlue);
   ObjectSetInteger(0,"Center",OBJPROP_WIDTH,1);
   ObjectSetInteger(0,"Center",OBJPROP_STYLE,STYLE_DASH);

//---

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   ObjectMove("Ask",0,0,Ask);
   ObjectMove("Bid",0,0,Bid);
   ObjectMove("Center",0,0,(Ask+Bid)/2);
  }
//+------------------------------------------------------------------+


Довольно просто или у вас есть что-то еще на уме?

 

Marco vd Heijden:

Довольно просто или у вас было что-то другое на уме?

#Spread Lines - Закрыто

Спасибо за ваш замечательный комментарий, который очень мне помог.

Нет, мне не нужно использовать вертикальную и горизонтальную линии только для этой функции. (Но я буду использовать горизонтальную линию для линии OrderOpenPrice()).

Для чего мне нужно использовать объекты TrendLine, например, для линии Spread Prices - Bid & Ask Lines.
( Когда мои знания кода были на нуле - я имел представление о дизайне Spread Lines - но я думал, что это невозможно, пока я не увидел один индикатор, который изменяет Spread lines - и я вдохновился и поэтому я уже начал пытаться сделать это для себя - даже этот индикатор бесплатный - я не люблю использовать советники и индикаторы, которые сделаны другими людьми - без "News Indicator" ).

N( вызаметили): Если это зависит от таймфрейма, вы можете использовать переключатель таймфреймов, опубликованный несколько страниц назад.
N: Я всегда удаляю все при переходе на другой таймфрейм в OnDeinit() и затем рисую новые в OnInit() или отдельной функции draw().

О! Обязательно попробую.
Я хотел бы отметить:
Как я уже упоминал, я сделал много вещей для моих индикаторов и ea, все они действительно работают идеально для меня, но если вы спросите, как вы их сделали?
О! Я не могу вспомнить, как я все это делал, поэтому просто хочу сказать, что я проверю несколько страниц назад...

И я хотел бы изучить, как я могу нарисовать новые..., потому что пока я вижу одну проблему, когда я переключаю таймфрейм, TrendLine не перемещается правильно.

---

Я пробую нижеприведенный код для Spread Lines - Bid & Ask Lines.
Вопрос: Что вы упомянули в этом сообщении, может ли это сообщение решить мою проблему с нижеприведенным кодом, пожалуйста? (Я еще не пробовал).
Q: Также, возможно ли, что вы можете сообщить мне, что не так в приведенном ниже коде?

S: (Я решил эту проблему).

Заранее спасибо.

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