Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 488

 
Есть два индикатора Ind_1 и Ind_GV. Индикатор Ind_GV отличается от Ind_1 тем, что получает значение одной из настроек от глобальной переменной клиентского терминала.
Когда параметр настройки у Ind_1 и Ind_GV совпадает, у Ind_GV результирующее значение немного отличается от результирующего значения Ind_1.
Если в период совпадения настроек у Ind_1 и Ind_GV сделать паузу в тестере и произвести компиляцию Ind_GV, то результирующее значение обоих индикаторов совпадает полностью.
Кто знает, чем это можно объяснить?
 

Подскажите, разве для запуска в тестере стратегий, режима оптимизации советника нужен какой либо код в самом советнике?

Написал советника пытаюсь оптимизировать а оно мне вон что:


2014.02.18 21:54:30.386 Tester: cache file "C:\...\tester\caches\test.NZDUSD5.0" found and can be used for further optimization

2014.02.18 21:54:30.388 TestGenerator: actual tick file "C:\...\tester\history\NZDUSD5_0.fxt" found

История есть. Файлик этот NZDUSD5_0.fxt аж +150 метров весит..

Еще в логах тестера вот это бывает

2014.02.18 22:50:21.251 TestGenerator: unmatched data error (volume limit 305 at 2014.02.12 13:35 exceeded)

Это к чему?


 

Помогите пожалуйста!

Каждая из переменных может принимать значение от 1 до 5...Подскажите,как не писать 3125 вариантов)))

   if  (Kx==5&&     K>T &&     K>SA &&     K>SB &&     K>Bid &&
        Tx==4&&     T<K &&     T>SA &&     T>SB &&     T>Bid && 
        SAx==3&&    SA<K &&    SA<T &&     SA>SB &&    SA>Bid &&
        SBx==2&&    SB<K &&    SB<T &&     SB<SA &&    SB>Bid &&
        BID==1&&    Bid<K &&   Bid<T &&    Bid<SA &&   Bid<SB
       )
 
niktron:

Помогите пожалуйста!

Каждая из переменных может принимать значение от 1 до 5...Подскажите,как не писать 3125 вариантов)))

Нарисовать 25 вариантов, а после разбираться с тем, кто кого больше.
 
tara:
Нарисовать 25 вариантов, а после разбираться с тем, кто кого больше.

Спасибо..как раз этим сейчас и занимаюсь...Хотел с массивами замутить,но не хватает тямы...)))
 
В итоге вариантов 3125,а не 25..но разбить на 25 варианта-тоже дело)))
 
Комментарии сразу пишите, после помогут.
 
Ушел к женщине.
 

Прошу помощи с индикатором с вложениями ".mqh".

Буферы индикатора ExtBuffer1[], ExtBuffer2[] и Buffer_M[] имеют размер 0, при этом буфер ExtBuffer0[] работает исправно и его размерность равна Bars, как и должно быть. Что самое интересное все работало исправно, в старой версии MT4, пока она не обновилась на новую. И еще. Если все содержимое вложений перенести в один основной файл mq4 индикатора, то все снова работает исправно.

Вопрос: Почему размеры массивов для буферов индикатора во вложениях сбрасываются на 0?

Вот его исходный код индикатора.

//+------------------------------------------------------------------+

//| AO_EMA_(with_includes).mq4 |

//+------------------------------------------------------------------+

#include <AO_EMA_(with_includes)_GLOB.mqh>

//--------------------------------------------

int init()

{

#include <AO_EMA_(with_includes)_INIT.mqh>

return(0);

}

//--------------------------------------------

int start()

{

#include <AO_EMA_(with_includes)_START.mqh>

return(0);

}

//+------------------------------------------------------------------+





//+------------------------------------------------------------------+

//| AO_EMA_(with_includes)_GLOB.mq4 |

//+------------------------------------------------------------------+

#property indicator_separate_window

#property indicator_buffers 4

#property indicator_color1 Black

#property indicator_color2 Green

#property indicator_color3 Red


//---- Input Data

extern int Slow = 100;

extern double Slow_Fast = 4.318;

extern int Average = 25; // Усреднение АО

extern bool Show_AO_G = true,

Show_AO_R = true;


//---- Глобальные переменные

int Fast;

bool Alert_done = false; // Флаг говорит о том, что Alert уже был раз сгенерирован.

//---- indicator buffers

double ExtBuffer0[];

double ExtBuffer1[];

double ExtBuffer2[];

//---- Буфера индикатора, для промежуточных расчетов

double Buffer_M[];

//+------------------------------------------------------------------+

//| AO_EMA_(with_includes)_INIT.mq4 |

//+------------------------------------------------------------------+

//---- Установка значение для переменной "Fast"

Fast = NormalizeDouble(Slow / Slow_Fast, 0);


//---- indicator buffers mapping

SetIndexBuffer(0, ExtBuffer0);

SetIndexBuffer(1, ExtBuffer1);

SetIndexBuffer(2, ExtBuffer2);

SetIndexBuffer(3, Buffer_M);


//---- drawing settings

SetIndexStyle(0, DRAW_NONE); // Линия не рисуется

SetIndexStyle(1, DRAW_HISTOGRAM); // Гистограмма

SetIndexStyle(2, DRAW_HISTOGRAM); // Гистограмма

SetIndexStyle(3, DRAW_NONE); // Линия не рисуется

//---- drawing begin settings

SetIndexDrawBegin(0, Fast); // Индикатор начинает рисоваться с этого бара, от начала графика слева.

SetIndexDrawBegin(1, Fast);

SetIndexDrawBegin(2, Slow);

SetIndexDrawBegin(3, Slow);


IndicatorDigits(Digits+1);

//---- name for DataWindow and indicator subwindow label

IndicatorShortName("AO_EMA ("+Fast+"-"+Slow+")");

SetIndexLabel(1,"Green");

SetIndexLabel(2,"Red");

//---- Обнуляем буфер индикатора

SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0);

SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0);

//---- initialization done

//+------------------------------------------------------------------+

//| AO_EMA_(with_includes)_START.mq4 |

//+------------------------------------------------------------------+

int limit, pos;

int counted_bars=IndicatorCounted();

double prev,current, pr;

bool up;


//---- Последний посчитанный бар будет пересчитан

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

Print("counted_bars=",counted_bars," Bars=",Bars," limit=",limit);

Print("0=",ArraySize(ExtBuffer0)," 1=",ArraySize(ExtBuffer1)," 2=",ArraySize(ExtBuffer2)," M=",ArraySize(Buffer_M));


//---- Расчет MACD для Гистограммы "= EMA(fast) - EMA(slow)"

if(Show_AO_G == true || Show_AO_R == true)

{ for(int i=0; i<limit; i++)

Buffer_M[i]=iMA(NULL,0,Fast,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,Slow,0,MODE_EMA,PRICE_MEDIAN,i);


//---- Усредняем MACD по "Average".Это и будет рисоваться на графике..

//---- ... можно заменить на " EMA(Fast)".

pr=2.0/(Average+1);

pos=Bars-2;

if(counted_bars>2) pos=Bars-counted_bars-1;

//---- Основной расчет

while(pos>=0)

{ if(pos==Bars-2) ExtBuffer0[pos+1]=Buffer_M[pos+1];

ExtBuffer0[pos]=Buffer_M[pos]*pr+ExtBuffer0[pos+1]*(1-pr);

pos--; }

//---- Расперделение данных между 2-я буферами, для разделения по цветам

for(i=limit-1; i>=0; i--)

{ // При перерасчете самого левого бара, порядковый номер в массиве [i+1] выходит за пределы размера массива, поэтому расчет первого цикла прорускаем.

if(i == Bars-1) continue;

//------------------------------------

current = ExtBuffer0[i];

prev = ExtBuffer0[i+1];

if(current == prev) continue;

else

{ if(current>prev) up=true;

if(current<prev) up=false;

if(!up)

{ ExtBuffer2[i]=current;

ExtBuffer1[i]=0.0; }

else

{ ExtBuffer1[i]=current;

ExtBuffer2[i]=0.0; }

}}}

//--- Устанавливаем видимость индикаторов

if(Show_AO_G == false) SetIndexStyle(1, DRAW_NONE);

if(Show_AO_R == false) SetIndexStyle(2, DRAW_NONE);

 
NEP:

Прошу помощи с индикатором с вложениями ".mqh".

Буферы индикатора ExtBuffer1[], ExtBuffer2[] и Buffer_M[] имеют размер 0, при этом буфер ExtBuffer0[] работает исправно и его размерность равна Bars, как и должно быть. Что самое интересное все работало исправно, в старой версии MT4, пока она не обновилась на новую. И еще. Если все содержимое вложений перенести в один основной файл mq4 индикатора, то все снова работает исправно.

Вопрос: Почему размеры массивов для буферов индикатора во вложениях сбрасываются на 0?

Вот его исходный код индикатора.




Вы любите через задницу все делать?