MarketInfo() - когда оно виручает? - страница 2

 
Parabellum писал(а) >>

Vinin, Вы в этом году не участвуете?

Нет. Не участвую. Не получилось.

 
Vinin писал (а) >>
С таким подходом мультивалютных экспертов нельзя ни тестировать, ни оптимизировать. Только это не так.

Верно! Виктор говорит!

---

что бы тестировать мультивалютку

по крайней мере читать другие пары

1-надо сформировать необходимые ТФ

2-в коде можно использовать такие конструкции

double  iCLB[3];

string Pair[3];



init()

{

   Pair[1] = "EURUSD";

   Pair[2] = "USDCHF";

}



void start()

{

 iCLB[1]=     iClose( Pair[1], PERIOD_M5,1 );

 iCLB[2] =    iClose( Pair[2], PERIOD_M5,1 );

}


на выходе в тестере имеем две цены, входы конечно в тестере по второй паре не пройдут

но принимать решение в зависимости от цены второй пары очень даже реально!

для советников с контролем баров!

повторюсь - останется только качественно приготовить данные по обоим парам

- т е загрузить качественную историю !

и только потом тестировать

---

MarketInfo (..., MODE_ASK / BID)  - увы в тестере на реаботает по другим парам

( может в MQL5 - будет работать - если там вообще не появятся новые функции для поддержки мультивалютки)

 
YuraZ писал(а) >>

...

В примере у Вас выход за пределы массива, вот.

 
Talex писал (а) >>

В примере у Вас выход за пределы массива, вот.

Верно, спасибо за замечание исправил пример!

пишу на разных языках :-),  по инерции написал

в аналогии, это как когда приходите на другой комп а там переключение на Русский не Ctrl+Shift

а Alt+Shift  вы по инерции давите Ctrl+Shift

---

кстати - такие ошибки практически очень сложно порой находить

работать кстати код будет!  но с непредсказуемыми последвиями - Си не контролирует прострелы за границы массива

 
YuraZ писал (а) >>

MarketInfo (..., MODE_ASK / BID) - увы в тестере на реаботает по другим парам

( может в MQL5 - будет работать - если там вообще не появятся новые функции для поддержки мультивалютки)

Юра. Если предварительно вызвать тот же iClose() по другой паре, то MarketInfo() уже работает. Я только так и делаю

 
Vinin писал (а) >>

Юра. Если предварительно вызвать тот же iClose() по другой паре, то MarketInfo() уже работает. Я только так и делаю

Виктор! спасибо я не знал этого!

можешь конструкцию показать ?

--

что то типа того:

вызвать  iClose  - он в окружение рынка положит цену - и чтение MarketInfo дает цену ту которую показывал iClose на момент вызова ?

? это справедливо только для  тестера

т е

 к примеру: 

я не вызывая RefreshRates()

по какой либо паре вызову допустим iClose на X баров назад - я потом MarketIfo прочитаю состояние нужного мне индикатора 

по X баров назад цене ?  

в тестере это работает это я понял,  

а в он лайн тоже ? подозреваю что в он лайн не работает так

провериь сейчас не могу... 

 
YuraZ писал (а) >>

Виктор! спасибо я не знал этого!

можешь конструкцию показать ?

--

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

Ничего сверхестественного.

 
ето ж надо как хитро придумано.. -)).. интересно сколько жопочасов нужно потратить, чтоб на ето наткнутся
Причина обращения: