포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 488

 
두 개의 표시기 Ind_1 및 Ind_GV가 있습니다. Ind_GV 지시자는 클라이언트 단말의 전역 변수 로부터 설정 중 하나의 값을 수신한다는 점에서 Ind_1과 다릅니다.
Ind_1과 Ind_GV의 설정 파라미터가 같을 때 Ind_GV의 결과 값은 Ind_1의 결과 값과 약간 다릅니다.
Ind_1과 Ind_GV에 대한 설정이 일치하는 동안 테스터에서 일시 중지하고 Ind_GV를 컴파일하면 두 표시기의 결과 값이 완전히 일치합니다.
이것이 어떻게 설명될 수 있는지 누가 압니까?
 

EA 최적화 모드인 전략 테스터에서 실행하려면 EA 자체에 코드가 필요합니까?

나는 그것을 최적화하기 위해 조언자를 썼지만 나에게는 다음과 같이 보입니다.


2014.02.18 21:54:30.386 테스터: 캐시 파일 "C:\...\tester\caches\test.NZDUSD5.0"이 발견되었으며 추가 최적화에 사용할 수 있습니다.

2014.02.18 21:54:30.388 TestGenerator: 실제 틱 파일 "C:\...\tester\history\NZDUSD5_0.fxt"를 찾았습니다.

역사가 있습니다. 이 파일 NZDUSD5_0.fxt의 무게는 이미 +150미터입니다.

테스터 로그에서도 발생합니다.

2014.02.18 22:50:21.251 TestGenerator: 일치하지 않는 데이터 오류(2014.02.12 13:35에서 볼륨 제한 305 초과)

이것은 무엇을 위한 것입니까?


[삭제]  

도와주세요, 제발!

각 변수는 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개의 옵션을 그린 다음 누가 더 많이 가지고 있는지 처리합니다.

감사합니다 .. 그게 바로 제가 지금 하고 있는 일입니다 ... 배열로 뒤섞고 싶었지만 tyama가 충분하지 않습니다 ...))))
[삭제]  
결과적으로 25개가 아닌 3125개의 옵션이 있습니다.. 하지만 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으로 재설정되는 이유는 무엇입니까?

다음은 지표 소스 코드입니다.




엉덩이를 통해 모든 것을 하는 것을 좋아합니까?