MA0.Buffer.0 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, i); 나는 여기 빨랐다.... 그는 항상 이 MA0.Buffer.0....과 비교한다. 그래서 내가 RSI, Stoch를 사용한다면... 모든 요소에 대해 이 버퍼를 생성해야 합니까? RSI용 RSI0.Buffer.0?
MA0.Buffer.0 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, i); 나는 여기 빨랐다.... 그는 항상 이 MA0.Buffer.0....과 비교한다. 그래서 내가 RSI, Stoch를 사용한다면... 모든 요소에 대해 이 버퍼를 생성해야 합니까? RSI용 RSI0.Buffer.0?
여보세요,
누군가가 내가 하고 싶은 일을 하는 지표를 얻는 데 도움을 줄 수 있기를 바랍니다.
나는 몸체의 길이 / 또는 양초의 총 길이에 양초 막대의 시간을 더한 표시기가 있습니다.
단, 5 Digit 브로커에게는 적합하지 않습니다. 시간과 길이는 Digit 4에서 완벽하면서 서로 투영 됩니다.
누군가가 코드를 변경할 수 있고 기꺼이 변경할 수 있다면 매우 좋을 것입니다.
미리 감사드립니다.
문안 인사,
벤
간단한 것을 놓치고
MA 크로스 EA, 모든 MA 크로스 EA용 TL 필터를 작업하고 있지만 간단한 것이므로 부착된 부분에 스터드를 박습니다.
기본적으로 TL 계산기는 TL 방향과 가격 교차에 따라 신호 1, 2 또는 3을 제공하고 TL이 충분히 기울어지지 않은 경우 불쾌한 "제로 분할"을 제공합니다.
나는 코딩을 배우고 있고 모든 Coders' Guru PDF와 MQL4 포럼에서 최대한 많이 읽었습니다.
포인터를 찾는 중....
문제: 가격이 TL을 건드리지 않고 매수해도 괜찮을 때 3 인 "TLfilter" 값을 호출하는 방법을 알 수 없습니다.
나는 그것을 매수/매도 기준에 &&TTLfilter = 3!으로 고정하려고 시도했고, 내가 알아낼 수 있는 다른 방법도 있지만 내가 얻을 수 있는 것은 거래가 전혀 없다는 것뿐입니다.
또한 OrderSelect 루프에 넣으려고 시도했지만 운이 없었습니다.
내가 누락 된 것과 같이 포인터를 찾고 있습니다.
관심이 있는 사람이 있다면.
EA를 첨부하기 전에 차트에 TL을 그리고 이름을 t6으로 지정합니다.
//--- Print("TLfilter = ",TLfilter); 반환(TL 필터); TL 섹션의 맨 아래에서 수행 중인 작업을 확인합니다.
이 EA에 대한 모드는 이중선 ======= 1 2 및 3으로 표시됩니다.
편집: 가능한 한 깨끗한지 확인하기 위해 이 코드에 내 코딩이 없습니다. x_trader_v2_tlmod.mq4
다중지표
안녕!
누군가 이와 같은 다중 표시기를 사용/가지고 있습니까?
다중 이동 평균 - MQL4 코드 기반
아래를 보면 "자유바" 표시기처럼 보입니다... 그래서... 이 입력 표시기를 변경하고 싶습니다. 4ema를 사용하고 싶지 않습니다.... 1ema(2 크로싱), CCI, STOCH 및 사르
멀티인디케이터를 찾았지만 이런 히스토리는 없었습니다.
누군가 도와주고 코드를 변경할 수 있습니까?
안녕하세요 Pearl1입니다.
내가 볼 수 있는 바로는 신호를 보낼 조건과 함께 사용하려는 지표로 다른 3개의 이동 평균 을 대체하는 콜을 입력하면 됩니다.
뭔가를 시도했지만 진전이 없었습니다
지금까지 코딩한 것을 게시하고 무엇을 하려고 하는지 설명하지 않으시겠습니까? 그렇게 하면 누군가가 당신을 도울 수 있습니다
뭔가를 시도했지만 진전이 없었습니다
정수 시작()
{
//----
int Counted.Bars = IndicatorCounted(), i;
if(Counted.Bars<0) return(-1);
if(Counted.Bars>0) Counted.Bars--;
int Limit = 막대 - Counted.Bars;
색상 Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4;
//----
for(i=한계, i>=0, i--)
{
MA0.Buffer.0 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, i); 나는 여기 빨랐다.... 그는 항상 이 MA0.Buffer.0....과 비교한다. 그래서 내가 RSI, Stoch를 사용한다면... 모든 요소에 대해 이 버퍼를 생성해야 합니까? RSI용 RSI0.Buffer.0?
//----
MA1.Buffer.0 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i);
MA1.Buffer.1 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i+1);
MA2.Buffer.0 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i);
MA2.Buffer.1 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i+1);
MA3.Buffer.0 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i);
MA3.Buffer.1 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i+1);
MA4.Buffer.0 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i);
MA4.Buffer.1 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i+1);
MA1.UP.버퍼 = EMPTY_VALUE ;
MA1.DN.버퍼 = EMPTY_VALUE;
if(MA1.Buffer.0 < MA1.Buffer.1) MA1.DN.Buffer = Gap * P1.Position + 1.0;
else MA1.UP.Buffer = Gap * P1.Position + 1.0;
if(MA1.Buffer.0 < MA0.Buffer.0) Text.Color.1 = Text.Color.Up;
else Text.Color.1 = Text.Color.Down;
//----
MA2.UP.버퍼 = EMPTY_VALUE;
MA2.DN.버퍼 = EMPTY_VALUE;
if(MA2.Buffer.0 < MA2.Buffer.1) MA2.DN.Buffer = Gap * P2.Position + 1.0;
else MA2.UP.Buffer = Gap * P2.Position + 1.0;
if(MA2.Buffer.0 < MA0.Buffer.0) Text.Color.2 = Text.Color.Up;
else Text.Color.2 = Text.Color.Down;
//----
MA3.UP.버퍼 = EMPTY_VALUE;
MA3.DN.버퍼 = EMPTY_VALUE;
if(MA3.Buffer.0 < MA3.Buffer.1) MA3.DN.Buffer = Gap * P3.Position + 1.0;
else MA3.UP.Buffer = Gap * P3.Position + 1.0;
if(MA3.Buffer.0 < MA0.Buffer.0) Text.Color.3 = Text.Color.Up;
else Text.Color.3 = Text.Color.Down;
//----
MA4.UP.버퍼 = EMPTY_VALUE;
MA4.DN.버퍼 = EMPTY_VALUE;
if(MA4.Buffer.0 < MA4.Buffer.1) MA4.DN.Buffer = Gap * P4.Position + 1.0;
else MA4.UP.Buffer = Gap * P4.Position + 1.0;
if(MA4.Buffer.0 < MA0.Buffer.0) Text.Color.4 = Text.Color.Up;
else Text.Color.4 = Text.Color.Down;
//----
//----
LabelSet(Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4);
//----
}
//----
리턴(0);
모든 요소에 대해 버퍼를 생성할 필요는 없습니다.
MA1.Buffer.0, MA1.Buffer.1, ....은 버퍼가 아니라 단순 변수입니다. 이름을 변경하지 않고 무엇이든 사용할 수 있습니다. 예를 들어 rsi에 대해 사용하려는 경우 코드를 다음과 같이 변경할 수 있습니다.
변수 이름을 변경할 필요 없이 작동합니다(이 경우 RSI1.Period 및 RSI1.Price를 외부 매개변수 로 정의하기만 하면 됨)
정수 시작()
{
//----
int Counted.Bars = IndicatorCounted(), i;
if(Counted.Bars<0) return(-1);
if(Counted.Bars>0) Counted.Bars--;
int Limit = 막대 - Counted.Bars;
색상 Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4;
//----
for(i=한계, i>=0, i--)
{
MA0.Buffer.0 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, i); 나는 여기 빨랐다.... 그는 항상 이 MA0.Buffer.0....과 비교한다. 그래서 내가 RSI, Stoch를 사용한다면... 모든 요소에 대해 이 버퍼를 생성해야 합니까? RSI용 RSI0.Buffer.0?
//----
MA1.Buffer.0 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i);
MA1.Buffer.1 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i+1);
MA2.Buffer.0 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i);
MA2.Buffer.1 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i+1);
MA3.Buffer.0 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i);
MA3.Buffer.1 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i+1);
MA4.Buffer.0 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i);
MA4.Buffer.1 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i+1);
MA1.UP.버퍼 = EMPTY_VALUE;
MA1.DN.버퍼 = EMPTY_VALUE;
if(MA1.Buffer.0 < MA1.Buffer.1) MA1.DN.Buffer = Gap * P1.Position + 1.0;
else MA1.UP.Buffer = Gap * P1.Position + 1.0;
if(MA1.Buffer.0 < MA0.Buffer.0) Text.Color.1 = Text.Color.Up;
else Text.Color.1 = Text.Color.Down;
//----
MA2.UP.버퍼 = EMPTY_VALUE;
MA2.DN.버퍼 = EMPTY_VALUE;
if(MA2.Buffer.0 < MA2.Buffer.1) MA2.DN.Buffer = Gap * P2.Position + 1.0;
else MA2.UP.Buffer = Gap * P2.Position + 1.0;
if(MA2.Buffer.0 < MA0.Buffer.0) Text.Color.2 = Text.Color.Up;
else Text.Color.2 = Text.Color.Down;
//----
MA3.UP.버퍼 = EMPTY_VALUE;
MA3.DN.버퍼 = EMPTY_VALUE;
if(MA3.Buffer.0 < MA3.Buffer.1) MA3.DN.Buffer = Gap * P3.Position + 1.0;
else MA3.UP.Buffer = Gap * P3.Position + 1.0;
if(MA3.Buffer.0 < MA0.Buffer.0) Text.Color.3 = Text.Color.Up;
else Text.Color.3 = Text.Color.Down;
//----
MA4.UP.버퍼 = EMPTY_VALUE;
MA4.DN.버퍼 = EMPTY_VALUE;
if(MA4.Buffer.0 < MA4.Buffer.1) MA4.DN.Buffer = Gap * P4.Position + 1.0;
else MA4.UP.Buffer = Gap * P4.Position + 1.0;
if(MA4.Buffer.0 < MA0.Buffer.0) Text.Color.4 = Text.Color.Up;
else Text.Color.4 = Text.Color.Down;
//----
//----
LabelSet(Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4);
//----
}
//----
반환(0);정수 시작()
{
//----
int Counted.Bars = IndicatorCounted(), i;
if(Counted.Bars<0) return(-1);
if(Counted.Bars>0) Counted.Bars--;
int Limit = 막대 - Counted.Bars;
색상 Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4;
//----
for(i=한계, i>=0, i--)
{
MA0.Buffer.0 = iMA(NULL, 0, 1, 0, MODE_SMA, PRICE_MEDIAN, i);
//----
MA1.Buffer.0 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i);
MA1.Buffer.1 = iMA(NULL, 0, MA1.Period, 0, MA1.Mode, MA1.Price, i+1);
MA2.Buffer.0 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i);
MA2.Buffer.1 = iMA(NULL, 0, MA2.Period, 0, MA2.Mode, MA2.Price, i+1);
MA3.Buffer.0 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i);
MA3.Buffer.1 = iMA(NULL, 0, MA3.Period, 0, MA3.Mode, MA3.Price, i+1);
MA4.Buffer.0 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i);
MA4.Buffer.1 = iMA(NULL, 0, MA4.Period, 0, MA4.Mode, MA4.Price, i+1);
MA1.UP.버퍼 = EMPTY_VALUE;
MA1.DN.버퍼 = EMPTY_VALUE;
if(MA1.Buffer.0 < MA1.Buffer.1) MA1.DN.Buffer = Gap * P1.Position + 1.0;
else MA1.UP.Buffer = Gap * P1.Position + 1.0;
if(MA1.Buffer.0 < MA0.Buffer.0 ) Text.Color.1 = Text.Color.Up;
else Text.Color.1 = Text.Color.Down;
//----
MA2.UP.버퍼 = EMPTY_VALUE;
MA2.DN.버퍼 = EMPTY_VALUE;
if(MA2.Buffer.0 < MA2.Buffer.1) MA2.DN.Buffer = Gap * P2.Position + 1.0;
else MA2.UP.Buffer = Gap * P2.Position + 1.0;
if(MA2.Buffer.0 < MA0.Buffer.0 ) Text.Color.2 = Text.Color.Up;
else Text.Color.2 = Text.Color.Down;
//----
MA3.UP.버퍼 = EMPTY_VALUE;
MA3.DN.버퍼 = EMPTY_VALUE;
if(MA3.Buffer.0 < MA3.Buffer.1) MA3.DN.Buffer = Gap * P3.Position + 1.0;
else MA3.UP.Buffer = Gap * P3.Position + 1.0;
if(MA3.Buffer.0 < MA0.Buffer.0 ) Text.Color.3 = Text.Color.Up;
else Text.Color.3 = Text.Color.Down;
//----
MA4.UP.버퍼 = EMPTY_VALUE;
MA4.DN.버퍼 = EMPTY_VALUE;
if(MA4.Buffer.0 < MA4.Buffer.1) MA4.DN.Buffer = Gap * P4.Position + 1.0;
else MA4.UP.Buffer = 간격 * P4.Position + 1.0;
if(MA4.Buffer.0 < MA0.Buffer.0 ) Text.Color.4 = Text.Color.Up;
else Text.Color.4 = Text.Color.Down;
//----
//----
LabelSet(Text.Color.1, Text.Color.2, Text.Color.3, Text.Color.4);
//----
}
//----
반환(0);아하, 감사합니다. 하지만 이 버퍼는 .... 모두 MA0.Buffer.0과 비교됩니까?
IMA() 호출을 원하는 호출(예: 내가 제공한 예제의 iRSI())로 바꾸면 작동해야 합니다. 변수 이름을 바꿀 필요가 없습니다.
아하, 감사합니다. 하지만 이 버퍼는 .... 모두 MA0.Buffer.0과 비교됩니까?