정말 감사합니다. 거절하지 않겠습니다. :-) 그리고 ICQ에 비누를 쓰겠습니다. 번호를 표시하십시오. 그리고 답변에 관해서는 이렇게 말씀드리겠습니다. 제가 먼저 답변을 드렸고 다른 분들이 오셔서 답변을 보고 아무 것도 추가하지 않으셨습니다. 그러므로 여기 있는 모든 사람이 너무 사악하고 지식을 공유하고 싶지 않다고 생각하지 마십시오.
Эксперт: iCustom("USDJPY", ...
А индикатор откуда об этом знает? Лучше добавить в секцию extern индикатора строковую переменную вроде
extern string SymbolName = "USDJPY"; // инструмент по умолчанию
и вызывать стохастик так
Stochastic[i]=iStochastic(SymbolName, 0, ...
(Опять какие-то глюки форума. В Лисе стрелки не работают, оттго и пишу не по-людски)
#propertyindicator_separate_window#propertyindicator_buffers3#propertyindicator_color1Yellow#propertyindicator_color2Red#propertyindicator_color3Red#propertyindicator_minimum0#propertyindicator_maximum100//---- input parameters//extern string st="---Параметры Stochastic---";
extern string SymbolName = "USDJPY";
extern int TimeFrame = 0;
externintKPeriod =12;
externintDPeriod =3;
externintSlowing =2;
//extern string en="---Параметры Envelopes---";externintEnvPeriod=17;
externintDeviation=15;
externintShift=1;
//---- buffersdoubleStochastic[];
doubleUP[];
doubleLOW[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intinit(){//---- indicatorsSetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Stochastic);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UP);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,LOW);
//----return(0);
}intdeinit(){return(0);
}//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intstart(){intlimit;
intcounted_bars=IndicatorCounted();
//---- последний посчитанный бар будет пересчитанif(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
//---- основной циклfor(inti=limit-1; i>=0; i--) // индикаторы лучше рассчитывать слева направо{Stochastic[i]=iStochastic(SymbolName,TimeFrame,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,i);
}for(i=limit-1; i>=0; i--) // см. примечание{UP[i] =iMAOnArray(Stochastic,0, EnvPeriod, Shift,MODE_SMA,i)+Deviation;
LOW[i]=iMAOnArray(Stochastic,0, EnvPeriod, Shift,MODE_SMA,i)-Deviation;
)
return(0);
}
Вызов из эксперта:
iCustom("USDJPY", 0, ...
С iMAOnArray вообще надо обращаться аккуратно. Например, поэкспериментировать с порядком ее расчета.
А лучше всего такие вещи делать самому. Кстати, для мультивалютного эксперта может потребоваться везде
явно задавать имя символа и рабочий тайм-фрейм, чтобы избежать умолчательных сюрпризов вроде этого.
바르게. 이것은 일반적으로 아마추어 일이지만. 예를 들어, 내 관행은 특정 아이디어를 테스트하기 위해서만 사용자 지정 지표 를 사용하고 아이디어가 작동하는 것으로 판명되면 지표 코드를 Expert Advisor에게 전송하는 것입니다. 이 접근 방식은 감지하기 어렵고 조잡한 프로그래밍으로 생명을 크게 오염시킬 수 있는 "빈" 표시기 값과 같은 함정에 대해 실질적으로 보장합니다.
alexjou, 도움말을 보고 다음을 찾았습니다.
"extern 메모리 클래스는 외부 변수를 정의합니다. extern 수정자는 데이터 유형보다 먼저 지정됩니다. 외부 변수 는 프로그램 입력 매개변수를 정의하며 프로그램 속성 창에서 사용할 수 있습니다. 배열은 외부 변수로 작동할 수 없습니다."
다음은 사용자 지정 표시기의 전체 코드입니다.
품질에 어드바이저의 외부 변수를 설정합니다.
이 쌍은 테스터에서 작동합니다. 여기서 무엇이 잘못될 수 있습니까?그리고 답변에 관해서는 이렇게 말씀드리겠습니다. 제가 먼저 답변을 드렸고 다른 분들이 오셔서 답변을 보고 아무 것도 추가하지 않으셨습니다. 그러므로 여기 있는 모든 사람이 너무 사악하고 지식을 공유하고 싶지 않다고 생각하지 마십시오.
알렉스주!
내가 제대로 이해한거야????????
다중 통화 Expert Advisor에서 사용자를 호출할 때. 특정 쌍에 대한 iCustom 표시기는 사용자 자체에서 먼저 더 좋아야 합니다. 제공하는 지표 -
외부 문자열 SymbolName = "USDJPY"; // 기본 도구
이것은 고문에서 다음을 설정한다는 사실에 추가됩니다.
iCustom("USDJPY", 60, ... 이 쌍에 대해!
그러나 다른 내선과 함께 다른 쌍에 대해 이 사용자 지정 표시기를 호출하면. 매개변수 - 이 다른 쌍에 대해 이 사용자의 사본을 입력해야 함을 의미합니다. 다른 이름을 가진 칠면조, 그리고 또 다른 쌍의 상징을 설정했습니다!
하지만 커스텀 칠면조 없이 혼자서 EA 내부에서 iMAOnArray를 계산하는 것이 정말 쉽습니다!
설명 감사합니다! 내가 돌볼게...
klerk, 주말에 ICQ에 문제가 있습니다.
여기 내 메일이 있습니다. 고문의 주소를 보낼 수 있습니다.
rid200549@ya.ru
서기, 담당자 여기 또는 내 메시지의 우편 수신을 확인하십시오.
그리고 전문가를 위한 또 다른 질문(너무 어리석은 경우 죄송합니다):
다중 통화 Expert Advisor에서 -
그리고 각 쌍의 후행에서 이러한 값도 입력하고 바꿔야 합니까?
아니면 그대로 둘 수 있습니까?그리고 각 쌍의 후행에서 이러한 값도 입력하고 바꿔야 합니까?