[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 135

 
MaxV42 >>:

Подскажите, пожалуйста.

У меня запущен дома терминал, на графике торгует советник.

Если я запущу на другом компьютере терминал(на работе) и установлю на графике тот же советник с теми же параметрами

1. Разорвется ли соединение с сервером на домашнем компьютере?

2. Если соединение с сервером на домашнем компьютере разорвется, то "подхватит ли" открытые ордера на рабочем компьютере советник?

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

1. нет

но у вас могут быть двойные открытия.

 
Советник в вашем случае ничем не отличается от человека. Допустим торгуют два человека на разных компах и на одном терминале. Оба заключают сделки и не зависят друг от друга, как 2 советника на разных компах. Друг-друга они не видят, не видят сделки другого и действуют согласно своей сложившейся ситуации. Если на одном компе исчезает связь, то торгует только один. Но связь не оборьвётся от присутствия двух советников на разных компах.
 
MaxV42 >>:

Подскажите, пожалуйста.

У меня запущен дома терминал, на графике торгует советник.

Если я запущу на другом компьютере терминал(на работе) и установлю на графике тот же советник с теми же параметрами

1. Разорвется ли соединение с сервером на домашнем компьютере?

2. Если соединение с сервером на домашнем компьютере разорвется, то "подхватит ли" открытые ордера на рабочем компьютере советник?

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

Если в параметрах вашего советника предусмотрен магик (magic number или ID или похожее название), то проблем у вас  будет меньше. Задавайте одинаковые магики на обоих терминалах. 

'Что такое "магик" и проскальзывание цены?'

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

Но я предполагаю, что раз магик входит в ф-ю OrderSend(),  то информация о нём хранится на сервере!

Знатоки, надеюсь, меня поправят, если я не права. В статье 'MagicNumber – "магический" идентификатор ордера'

 об этом ничего не сказано

Правда, двойное открытие иногда может иметь место.

 

Подскажите пожалуйста, как седлать так чтобы скрип периодически выполнялся, допустим за 10сек перед созданием нового бара, в периоде графика М5

(т.е хочу чтоб он выполнялся в (час:мин:сек) х:04:50 ; х:09:50 ; х:14:50).

 
VeDMeD писал(а) >>

Подскажите пожалуйста, как седлать так чтобы скрип периодически выполнялся, допустим за 10сек перед созданием нового бара, в периоде графика М5

(т.е хочу чтоб он выполнялся в (час:мин:сек) х:04:50 ; х:09:50 ; х:14:50).

загоняйте код скрипта в конструкцию

bool bWas;

while (!IsStopped())
{
  // проверяем время
  if (MathMod(Minute()+1, 5) ==0)
  {
      bWas=false;
      if (Seconds()>=50 && !bWas)
      {
        // делаем то что вам надо 
          bWas=true; // только один раз
          RefreshRates(); // обновляем данные валюты
        //........
      }
  }
}
 
MaxV42 писал(а) >>

Подскажите, пожалуйста.

У меня запущен дома терминал, на графике торгует советник.

Если я запущу на другом компьютере терминал(на работе) и установлю на графике тот же советник с теми же параметрами

1. Разорвется ли соединение с сервером на домашнем компьютере?

2. Если соединение с сервером на домашнем компьютере разорвется, то "подхватит ли" открытые ордера на рабочем компьютере советник?

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

Компбютеры будут работать независимо.

Здесь нужен явный контроль ситуации.

Учитывая ограниченность возможностей, можно лишь посоветовать организовать "разговор между советниками" по факту наличия отложенного ордера с определёнными параметрами.

1й ПК может сдвинуть ордер чуть-чуть вниз - типа, я тут торгую, так что ты, 2й, пока не вмешивайся ..

2й ПК может подправить ордер на место - типа, ага, понял, молчу..

Нетрудно составить алгоритм, по которому будет задаваться основной ПК (там, где хозяин ПКов). Понимая правильно свою мирную беседу компьютеры всегда будут знать кто из них основной, а кто - на подхвате.

Частота "разговора" должна быть небольшой, иначе брокер сочтёт это явление нежелательным и может запретить использование советников.

 
Как найти бар допустим на пятиминутке начала дня. А то чего-то с ходу не сообразить.Спасибо.
 
datetime dtD1 = iTime(Symbol(), PERIOD_D1, 0); // получили время начала текущего дня
int shiftM5 = iBarShift(Symbol(), PERIOD_M5, dtD1); // получили смещение в таймсерии M5
double priceDayOpenM5 = iOpen(Symbol(), PERIOD_M5, shiftM5); // работаем со смещением в таймсерии M5
 
В предложенном решении не учитывается смещение GMT.
 
DrShumiloff >>:
В предложенном решении не учитывается смещение GMT.

И как смещение от GMT может повлиять на таймсерию M5 относительно D1 ?

Просвятите Уважаемый DrShumiloff.

Вопрос новичка с двадцатилетним стажем программирования.