Вопрос по мультивалютному советнику - страница 5

 

Наверное ваш вопрос слишком трудный, goldtrader/

Подождем ещё немного.

А пока у меня появился вопрос. Прежде, чем стАвить сюда свои вопросы, я долгими часами сам пытаюсь найти ответы. Иногда удается. Но вот опять трудность. Всё по поводу того 5-мин. лимита.

Было поясниние:

" Kadak писал (а): Предложение для Организаторов: для проверки мультивалютных советников добавлять в код советника функцию IsTesting() и тестировать в одновалютном режиме (по каждой валюте отдельно). Это даст возможность проверить советник на отсутствие торговых ошибок и на "слив".

Ответ организаторов:

"Это должен делать экспертописатель. Простая конструкция типа if ( IsTesting() && UseSymbol != Symbol() ) return; решит все проблемы ;) "

-------------------------------------------------------------------------------------------

Структура кода моего эксперта ПРИМЕРНО такая -

//---- input parameters---------
 
ЗАДАЕМ ВНЕШНИЕ ПАРАМЕТРЫ ПО КАЖДОЙ ПАРЕ
 
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
 
int start()
  {  
 
int Orders=OrdersTotal ();     //получаем кол-во открытых ордеров
if (Orders<3)                 //если  открытых ордеров <3
  { 
if (выключатель 1 вкл) {РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ПЕРВУЮ ПАРУ } 
if (выключатель 2 вкл) {РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ВТОРУЮ ПАРУ } 
... ... ... 
if (выключатель N вкл) {РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ПОСЛЕДНЮЮ ПАРУ }  
  }
//========================================================================
for (int x=0; x<OrdersTotal(); x++)                                             {
    if (OrderSelect(x, SELECT_BY_POS, MODE_TRADES)) 
{       
if (UseTrailing 1) - ТРЕЙЛИНГ ПЕРВОЙ ПАРЫ
... ... ...
if (UseTrailing N) - Трейлинг последней пары
}
//======================================================================
   return(0);
  }

И теперь сюда нужно неким образом вставить -

if ( IsTesting() && "GBPJPY" != "GBPPY" ) return;

if ( IsTesting() && "GBPUSD" != "GBPUSD" ) return;

if ( IsTesting() && "USDCHF" != "USDCHF" ) return;

if ( IsTesting() && "EURUSD" != "EURUSD" ) return;

Неоднократные мои попытки не принесли успеха. В справке - всего две строки об этой функции.

Пож. подскажите, - как это сделать.

 
"GBPUSD" != "GBPUSD" -- такого вообще не бывает, потому и не работает. См. ответ разработчиков.
//
string UseSymbol;
...
UseSymbol = Symbol();
...
if (IsTesting() && (UseSymbol != "GBPUSD")) { ToDo }
...
 

Благодарю, alexjoi

Сейчас буду смотреть....

 
alexjou, а на мой вопрос (постом ранее) Вы не сможете ответить?
 
Похоже на правду, по крайней мере, навскидку. Можно еще попробовать такого монстрика:
H = iHigh("USDJPY", PERIOD_H4, iHighest("USDJPY", PERIOD_H4, MODE_HIGH, 50, 1));
в общем виде:
H = iHigh(SymbolName, TimeFrame, iHighest(SymbolName, TimeFrame, MODE_HIGH, Shift, StartPosition));
Может, удастся обойтись без циклического перебора. Однако за базар не отвечаю, посколько эти функции использую чрезвычайно редко и всех их особенностей не знаю.
 
alexjou:
Похоже на правду, по крайней мере, навскидку. ...


СПАСИБО. Проверил, Ваша конструкция работает и она более экономична.

Незнание частностей с лихвой компенсируется знанием общих закономерностей. Респект.

 

Здраствуйте.

скажите пожалуйста, в правилах указано, что макс кол-во ордеров - 3. при мультивалютном советнике это относиться к каждой из торгуемых пар или ко всем вместе?

например, мой советник оперирует 3мя ордерами по каждой паре, но для уменьшения просадки работает по трем парам. т о суммарное число одновременно выставленных лотов составит 9, при лоте 0. 5 маржа составит примерно 5000 (т е около 50%). советник не допускаеца к чемпионату?

 

Не совсем в тему будет пост. А впрочем как знать. Обнаружил закономерность по фунтовым (и не только) парам. К сож. - печальную для нас...

Оптимизировал своего советника с 1 янв. 2007. по июль. За август тест тоже получился удовлетворительным - вне периода оптимизации. Потом прогнал по истории. с 2006г. и даже ранее.

Сливает. Но сливает странным образом. Почти по всем парам сливает до конца сентября - начала октября прошлого 2006г.

Иначе говоря, до момента начала чемпионата. А потом резко вверх! Напомню, что я оптимизировал свои пары с янв. 2007г. Не считаю, что, как многие думают - "изменился рынок" . Дело наверное в подаче котировок. Хотя мой эксперт вовсе не пипсовочный. Стопы от 60 до 130 пипсов. Но где гарантия ,что с начала октября котировки не будут подаваться иначе?

Какие есть соображения? У кого может есть аналогичные наблюдения? Могу выложить графики балансов - если кто сомневается.

И еще один вопрос встает. По паре GBPCHF вне периода оптимизации эксперт сливает. Сливает так что аж дух захватывает!

Рабочий тф. - н4. Стопы от 60 и более. Насколько реально с непомерным спредом по этой паре получить прибыль при работе советника наоборот. Что учесть? Что предусмотреть? Кто-ниб. проводил такой эксперимент?

 
GameOver:

Здраствуйте.

скажите пожалуйста, в правилах указано, что макс кол-во ордеров - 3. при мультивалютном советнике это относиться к каждой из торгуемых пар или ко всем вместе?

например, мой советник оперирует 3мя ордерами по каждой паре, но для уменьшения просадки работает по трем парам. т о суммарное число одновременно выставленных лотов составит 9, при лоте 0. 5 маржа составит примерно 5000 (т е около 50%). советник не допускаеца к чемпионату?


GameOver, это относится ко всем сразу. Одновременно в рынке не должно быть более трех ордеров (в т.ч. и отложенных)

Не важно по одной паре или по разным. И НЕ БОЛЕЕ 5-ТИ ЛОТОВ В КАЖДОМ ОРДЕРЕ.

Отсюда и плясать надо.

 
rid:


GameOver, это относится ко всем сразу. Одновременно в рынке не должно быть более трех ордеров (в т.ч. и отложенных)

Не важно по одной паре или по разным. И НЕ БОЛЕЕ 5-ТИ ЛОТОВ В КАЖДОМ ОРДЕРЕ.

Отсюда и плясать надо.


пипец.. и в чем смысл тогда мультивалютного советника? в том что он отрывался тока по курсу, никаких отложенных? призыв к гемарою с реквотами? даже простой стоп-переворот для 2 пар - это уже 4 ордера!

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

:-(

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