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

 
artmedia70 писал(а) >>
Уважаемые гуру! Подскажите застрявшему в дебрях чайнику как организовать учёт ордеров и отслеживание событий по нескольким валютным парам и нескольким ТФ одновременно в одном советнике. Учёт ордеров в большой программе и Функция слежения за событиями не дают мне однозначных ответов на мои вопросы и нигде на необъятных просторах сего замечательного ресурса я так и не нашел ответа. Никогда не думал, что простая задача (сердцем чую - простая) может так надолго и бесповоротно поставить чайника в тупик, да ещё и гвоздями вбить в стену, чтоб не выбрался... :)
Понимаю, что нужно организовать перебор ордеров в цикле, но никак не могу представить себе как отслеживать открытые позиции и установленные ордера одновременно по разным валютным парам и на разных тайм-фреймах. Блин, месяц уже не могу сдвинуться с места. Сделал по учебнику советника, торгующего только по одной паре и одному ТФ, но он, естественно, не соответствует моей ТС и совершенно не удовлетворяет тем требованиям, которые необходимы для реализации торговой системы.
Уже крик о помощи... Помогите разобраться. Иль хотябы намекните, где я могу об этом почитать (только, пожалуйста, не отсылайте обратно в учебник) и желательно с примерами (а как же новичку без примеров - пощупать всегда лучше, чем поглядеть...).

Буду благодарен всем, кто хоть как-то откликнется на мольбу о помощи.

Придумайте себе код,

который кодировал бы все различия между ордерами в виде int переменной и присваивайте его магику,

при опросе вы по одному магику будете точно знать что за ордер у вас в руках.

 
Скажите, должны ли рисоваться графические объекты советником в тестере не в ценовом окне, а в отдельном? Почему-то это не работает при замене нуля на единицу при создании объекта.
 
GVA63 >>:

Можeт вопрос покажeтся странным, но отвeт найти нe могу:

почeму при работe в "автматe", при одном и том-жe SL, ТP рeзультат сдeлок разный ? (разница до 3х пунктов). Буду благодарeн, eсли хотябы ссылку дадитe на соотв.

Проскальзывание наверно?

А что Вы имеете ввиде под работой на "автомате"? Что имеется ввду под термином "автомат"? 

 
Necron >>:
Добрый день. Подскажите пожалуйста как сделать панель на графике, на которую можно было бы поместить несколько графических объектов. Притом координаты объектов должны изменяться при перемещении панели в соответствии с координатами панели. Где-то видел в кодебазе пример такой, но не могу найти. Благодарен за помощь
Все, проблема решена. Пример здесь -> https://www.mql5.com/ru/code/9403
 

Метод "Контрольные Точки" принимает в расчет котировки ближайшего меньшего таймфрейма.

Если оптимизируем на 1-часовике, а история закачана только для Н1 и М5 -> М5 будет использоваться или игнорироваться?

 
Спасибо всем, кто ответил на мой предыдущий вопрос.
Теперь вопрос такого плана:
могу ли я использовать при вызове MarketInfo такую конструкцию:

______________________________________________________________________

for (int ln=1; ln<=Instr_Count; ln++) // Поиск по массиву вал. инструментов
{
for (int mode=1; mode<=9; mode++) // Цикл по режимам MarketInfo вал. инструмента,
{ // равного текущему значению ln
Level_old=Mas_Ord_Old[0][ln][mode]; // Берём значение из массива Mas_Ord_Old [0][символ инстр.][MODE=mode]
Level_new=MarketInfo(Instrument[ln],mode+10); // Берём то же значение у ДЦ
// Здесь Instrument[ln] в соответствии с массивом названий вал. инстр.
// возвращает название по значению ln, далее
// к значению mode прибавляем 10 и молучаем MODE_XXX)

if (Level_old!=Level_new) // Если данные ДЦ изменились
{
Level_old=Level_new; // Запоминаем новое значение Level_new в Level_old,
Mas_Ord_New[0][ln][mode]=Level_new; // заносим его в массив Mas_Ord_New
Inform(10,Level_new); // Сообщаем об изменениях у брокера
// Функцию тоже нужно дорабатывать для более информативных сообщений...
}
} // Если данные ДЦ по данному режиму не поменялись, повторяем
// цикл по следующему режиму. До mode=9

} // Проверили все MODE по данной валютной паре, переходим к следующей

..................

Instrument[ln] - массив типа string с названиями валютных инструментов:

Instrument[1] = "EURUSD";
Instrument[2] = "USDCHF";
Instrument[3] = "GBPUSD";
Instrument[4] = "USDJPY";
Instrument[5] = "AUDUSD";
Instrument[6] = "USDCAD";
Instrument[7] = "EURCHF";
Instrument[8] = "EURGBP";
Instrument[9] = "EURJPY";
Instrument[10]= "EURCAD";
Instrument[11]= "EURAUD";
Instrument[12]= "GBPCHF";
Instrument[13]= "GBPJPY";
Instrument[14]= "CHFJPY";
Instrument[15]= "AUDCAD";

__________________________________________________________________________

?????????????????????????????????????????????
Заранее благодарю... :)

 

Не вникал в логику Вашего цикла. Но при беглом взгляде бросилось в глаза то, что я подчеркнул Вам красной чертой. Если данные ДЦ не поменялись, то повторяем. А если поменялись? Что советнику делать если поменялись. Где команда?

Когда программист ложится спать, он ставит возле кровати два стакана. Один - с водой - на случай, если программист захочет пить. Другой - пустой - на случай, если программист не захочет пиь.

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

P.S.

Кстати, artmedia70, обратите внимание, как расположены скобки и отступы Вашего кода на моём скриншоте. При такой организации кода он беолее читабелен. Это Вам просто к информации.

 

Конструкция типа:

if(A>B)
{
  // какие-то действия
}

является правильной, но менее удобна чем конструкция типа:

if(A>B){
  // какие-то действия
}

Открывающая фигурная скобка в первом случае добавляет лишнюю строку в код, тогда как во втором случае лишняя строка исключена. Закрывающая фигурная скобка во втором случае указывает, к какой-именно команде она относится, так как расположена она чётко под первым символом этой команды. То есть, при задействовании второго способа записи кода отыскать открывающую скобку так же просто как и при первом. НО! В чём перимущество второго способа записи? За счёт исключения лишних строк больше кода помещается на экране - глаз охватывает больше информации. В результате по коду легче перемещаться, а значит больший комфорт при программировании. 

 
У меня еще один вопрос. Есть индикатор (прикрепил), который показывает цену открытия и есть возможность задать смещение относительно времени открытия в часах и добавил еще в минутах. Подскажите пожалуйста как сделать, чтобы уровень рисовался только до времени закрытия дневного бара? Что-то я совсем с ним уже запутался :(
Файлы:
 
drknn >>:

Конструкция типа:

является правильной, но менее удобна чем конструкция типа:

Конструкция типа

if(A>B)
{
  // какие-то действия
}

Является правильной. А конструкция типа

if(A>B){
  // какие-то действия
}

Является устаревшей. Строка в примере (1) лишней не является и служит для однозначного выделения начала логического блока кода. На дворе 21 век -- смешно место экономить.

Если вам так удобно -- пишите, но нефиг других приучать писать неправильно.

НО! В чём перимущество второго способа записи? За счёт исключения лишних строк больше кода помещается на экране - глаз охватывает больше информации. В результате по коду легче перемещаться, а значит больший комфорт при программировании.

Чушь.

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