[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 500

 

cоветник на основе ZUP с модифицированными вилами

При работе использует индикатор с вилами, в тестере вилы индикатора почему то разворачиваются в обратную сторону (назад)

Отчего может быть этот разворот

 
Cmu4:
Господа, если не затруднит, скиньте функцию, которая тралит эквити. Что-то найти не могу..

https://www.mql5.com/ru/code/8781

И таки в кодбейзе полно

 
Помогите найти ф-цию для выставления ордеров, учитывающая проскальзывание и без 130-134 ошибок.
 
xrust:

https://www.mql5.com/ru/code/8781

И таки в кодбейзе полно

Добавлю советник Игоря Кима.
 
Roman.:


Привет, Дмитрий. Со своей стороны готов предложить Вам следующий вариант. Для аналогии см. сработку торговых критериев этой статьи-там идут также сработка ордера по двум сигналам - а именно - см. после второго рисунка "Первое, чего необходимо дождаться на графике DeMarker, это момент, когда DeMarker пересечет быструю и медленую линии MA в районе 0.7 для короткой позиции. Это первый предварительный сигнал. Далее дожидаемся пересечения собственно самих линий MA. Этот сигнал основной, после наступления которого можно приниматься за показания индикатора Taichi. Если пересечения линий MA не произошло, считается, что сигнал ложный, и развитие движения цены сохранится." Вот как это у меня выполнено в виде кода - во включаемом инклюде в сов, отвечающим за сработку торговых критериев.

Основная фишка в том, что работаем через две нижеприведенные в (конце) инклюда ф-ии посредством установки и сброса флагов при сработках того или иного торгового критерия.

У Вас дополнительно будет идти - запоминание текущего времени при сработке основного критерия через TimeCurrent, т.е. по аналогии в первой ф-ии int type_op_DeMarker укажете перед return(OP_BUY); или return(OP_SELL); выражение типа x = TimeCurrent; где x-глобальная переменная типа datetime. После чего аналогично сделаете и со второй ф-ей int type_op_MA... - там уже запоминаете переменную y= TimeCurrent;

Далее в блоке вычисления торговых критериев сравниваете плюсом и значение этих двух переменных след образом (получается, что аналог работы со значениями Тайчи - Вам не нужен - вместо него Вы бьете сравнение времени поступления Ваших двух торговых сигналов):

П.С. Плюсом Вам направляю ф-ию для возможности оптимизации значения рабочего ТФ.

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

Спасибо Вам большое, Ваш ответ оказался очень полезным
 
demlin:
Спасибо Вам большое, Ваш ответ оказался очень полезным

:-))) А я уж было подумал, что Вы это так проглотили и послали меня куда - подальше с этими аналогиями, примерами и т.д.... :-)))
 
Roman.:

:-))) А я уж было подумал, что Вы это так проглотили и послали меня куда - подальше с этими аналогиями, примерами и т.д.... :-)))
К компу не подходил некоторое время))). Только не совсем понял по поводу функции оптимизации рабочего ТФ. Это что?
 
demlin:
К компу не подходил некоторое время))). Только не совсем понял по поводу функции оптимизации рабочего ТФ. Это что?

Это просто некий "переходник", позволяющий оптимизировать таймфреймы советника через внешние переменные сова для установки лучшего (-их, в случае работы сова на нескольких ТФ) для его работы... Хорошая и полезная ф-ия...
 
Roman.:

Это просто некий "переходник", позволяющий оптимизировать таймфреймы советника через внешние переменные сова для установки лучшего (-их, в случае работы сова на нескольких ТФ) для его работы... Хорошая и полезная ф-ия...
А как ее получить?
 
demlin:
А как ее получить?


В моем ответе код внимательно посмотрите - она там указана сразу после окончания Criterion {... return (0)}... в блоке внешних переменных:

extern int t_trend_period =6; // для оптимизации по всем периодам от 0 до 7 шаг 1
                              // на каком ТФ работаем: 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1, 6 - Н4, 7-день

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

//--------------------------------------------------------------- 3 --
int Criterion()                        // Пользовательская функция
  {
  //--------------------------------------------------------------- 4 --
int trend_period=GetPeriod(t_trend_period); // для выбора оптимального значения рабочего ТФ

   // Параметры технич. индикат:
                 
double Taichi_1 = iCustom (Symbol(), trend_period, "Cronex Taichi",Tenkan, Kijun, Senkou, FlatSE, 0, 1);
...
...
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --

//для оптимизации по всем ТФ
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   case 8: periodres=10080;break;
   default: periodres=1;break;
  }
return(periodres);
} 
Причина обращения: