코딩하는 방법? - 페이지 117

 
mystified:
HMA에 레벨을 추가했습니다.

#속성 표시기_분리_창

#속성 표시기_버퍼 2

#property indicator_color1 블랙

#property indicator_color2 빨간색

#속성 표시기_너비1 2

#속성 표시기_최소 0

#속성 표시기_최대 100

#속성 표시기_레벨1 80

#속성 표시기_레벨2 60

#속성 표시기_레벨3 40

#속성 표시기_레벨4 20

#property indicator_levelcolor DarkSlateGray

그러나 표시기가 별도의 창에 제대로 표시되지 않습니다. 도움을 주시면 감사하겠습니다.

표시기가 강제로 제한되기 때문에:

다음 두 줄을 제거합니다.

#속성 표시기_최소 0

#속성 표시기_최대 100

수준은 경계 표시기에서만 제대로 작동하지만 경계 표시기를 수행하려면 계산에 제한이 포함되어야 합니다.

예: RSI = 100-(100/(1+U/D))

우리는 지표가 0-100 사이에서 움직일 것이라는 공식을 알고 있으며, 사라질 것을 두려워하지 않고 70-30 레벨을 포함할 수 있기 때문입니다.

다른 예는 MACD = EMA(CLOSE, 12)-EMA(CLOSE, 26))입니다.

우리는 M5에 레벨을 설정했고 H1으로 이동할 때 레벨이 사라졌을 가능성이 가장 높습니다.

따라서 동일한 공식을 사용하고 MACD = (EMA(CLOSE, 12)-EMA(CLOSE, 26))/EMA(CLOSE, 26)를 변경합니다. 이제 백분율 표시기가 생겼습니다. 제한은 없지만 레벨을 잃을 확률이 적습니다.

 

감사합니다.

 
나는 정말 간단한 EA를 만들었습니다. 그리고 내가 적어도 3개의 Timeframe에서 사용하는 시스템. 문제는 그것이 열리지 않고 한 쌍에 대해 3개의 EA와 3개의 차트를 갖고 싶지 않습니다.

i need a code that would only do one order for buy and for sell per bar per TF and still open if it is on a different bar. i can have buy and sell and the same bar.

때로는 3개의 다른 TF에 3개의 신호가 있습니다. 모든 주문을 받고 싶지만 TF당 하나의 주문만 원하고 다른 TF가 아직 열려 있지만 다른 바에 있는 경우 다른 TF에서 다른 주문을 받을 수 있습니다.

예시:

4시간에 1개의 신호

1시간에 1개의 신호가 있지만 4시간 동안 막대에 떨어짐

30분에 1개의 신호가 발생하지만 1시간 및 4시간 동안 1개의 막대만 표시됩니다.

3 신호가 열립니다.

필터 수단으로 매직 넘버를 사용해도 괜찮습니다.

누군가 나를 도울 수 있습니까? 매우 감사합니다.

지금까지 이것은 내가 생각한 것입니다 :

30분 동안

if (매직넘버 == 123)

{

if (iTime(OrderOpenTime()) != iTime(Symbol(),PERIOD_M30,0))

{//내 주문 코드}

}

저는 MT4가 없지만 로직이나 코드에 잘못된 부분이 있다는 것을 압니다. 그러니 여러분, 저를 도와주세요.

또한 나는 우리가 matrixbiz와 비슷한 문제가 있다고 생각합니다.

아무도 나를 도와줄 수 있습니까?

 
mystified:
감사합니다.

이것은 단지 예일 뿐입니다(이제 Oscillator HMA가 있으므로 ) 이전 게시물에서 여전히 MACD 이지만 다른 방식으로 계산됩니다.

 
 

D1의 시작 촛불에서 거래를 시작하는 방법 ??

D1 시간 프레임에 새 막대가 시작될 때 EA 시작 공개 거래를 요청하는 코드를 아는 사람이 있습니까?

다음은 논리입니다.

D1 TF에서 새 양초(새 날을 의미함)가 시작되면 EA는 각 위치에 대해 TP=10핍으로 매수 및 매도의 2가지 포지션을 엽니다.

양초가 닫히면 EA가 모든 위치를 닫고 새 양초에 대한 시작 위치를 다시 시작합니다.

아주 간단한 규칙이지만 여전히 이 간단한 규칙에 대한 코드를 찾을 수 없습니다....

저는 MQL4 코딩이 처음이고 이미 MQL4 코딩에 대해 자세히 알아보기 위해 많은 소스와 포럼을 검색하고 읽었지만 필요한 것을 찾을 수 없습니다.

전에 감사합니다...

 

여기 내 코드가 있습니다 .... 해결하도록 도와주세요.

이전에 요청한 내용을 코딩하려고 했습니다. 샘플 EA 코드는 다음과 같습니다.

int start()

{

최종 가격=0;

마지막 이익 = 0;

마지막 티켓 = 0;

LastLots=제비;

이익=0

ProfitPip=0;

쌍주문=0;

열린 주문 = 0;

PreviousOrders = OrdersOpened;

이중 스프레드 = MarketInfo(Symbol(),MODE_SPREAD);

PipValue=시장 정보(Symbol(),MODE_TICKVALUE);

ArrayCopyRates(요금, 기호(), PERIOD_D1);

if(DayOfWeek()==0 || DayOfWeek()==6)

{

//휴일에는 거래가 없습니다.

리턴(0);

}

또 다른

{

if (newbar()== 마침표())

{

(int cnt = OrdersTotal() - 1; cnt >= 0; cnt --)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Color1);

}

}

오픈바이();

오픈셀();

}

}

}

int newbar()

{

이중 g;

정수 m,s,k;

m=시간[0]+기간()*60-TimeCurrent();

g=m/60.0;

s=m%60;

m=(mm%60)/60;

반환(m);

}

무효 OpenBuy()

{

이중 ldLot, ldStop, ldTake;

문자열 lsComm;

ldLot = GetSizeLot();

ldStop = Ask-Point*StopLoss;

ldTake = NormalizeDouble(GetTakeProfitBuy(), 숫자);

OrderSend(Symbol(),OP_BUY,ldLot,NormalizeDouble(Ask,Digits),Slippage,ldStop,ldTake,"BUY",Magic,0,Color1);

}

무효 OpenSell()

{

이중 ldLot, ldStop, ldTake;

문자열 lsComm;

ldLot = GetSizeLot();

ldStop = Bid+Point*StopLoss;

ldTake = NormalizeDouble(GetTakeProfitSell(), 숫자);

OrderSend(Symbol(),OP_SELL,ldLot,NormalizeDouble(Bid,Digits),Slippage,ldStop,ldTake,"SELL",Magic,0,Color1);

}

더블 GetSizeLot()

{

반환(많은);

}

더블 GetTakeProfitBuy()

{

return(Ask+TakeProfit*Point);

}

더블 GetTakeProfitSell()

{

return(Bid-TakeProfit*Point);

}

어제 밤에 내 vps 에 업로드했지만 오늘 아침에 확인했지만 샘플 EA가 거래를 열지 않습니다. 여기 누군가가 샘플 EA를 수정하는 데 도움을 줄 수 있습니까?

btw, 나도 여기에 첨부했다

 

더 오래 지속되는 알림

안녕하세요 저는 이것의 안팎을 이해하려고 노력하는 초보자이며 모든 도움을 주시면 감사하겠습니다!!

현재 표시기에는 경고 생성을 위한 다음 코드가 있지만 이 경고는 경고음 한 번만 지속됩니다. 30초 또는 60초 동안 경고음을 울리게 할 수 있는 방법이 있습니까?

if (setalert == 1 && shift == 0) {

Alert(Symbol(), " ", 마침표, " ", 패턴);

setalert = 0;

}

감사해요

 

메타 트레이더로 재 코딩(Klinger Volume Oscillator)

Klinger Oscillator(KO)는 Stephen J. Klinger가 개발했습니다. Joseph Granville, Larry Williams, Marc Chaikin과 같은 잘 알려진 기술자의 볼륨에 대한 이전 연구를 통해 Mr. Klinger는 단기 및 장기 분석에 도움이 되는 볼륨 기반 지표를 개발하기 시작했습니다.

KO는 겉보기에 상반되는 두 가지 목표를 염두에 두고 개발되었습니다. 즉, 단기적인 고점과 저점에 신호를 보낼 수 있을 만큼 민감하지만 증권에 들어오고 나가는 자금의 장기적 흐름을 반영할 수 있을 만큼 정확합니다.

KO는 다음 원칙을 기반으로 합니다.

* 가격 범위(예: 고가 - 저가)는 움직임의 척도이고 볼륨은 움직임의 원동력입니다. 고가 + 저가 + 종가의 합계가 추세를 정의합니다. 오늘의 합계가 전날의 합계보다 클 때 누적이 발생합니다. 반대로 오늘의 합계가 전날의 합계보다 적을 때 분배가 발생합니다. 합이 같으면 기존 추세가 유지됩니다.

* 거래량은 매수 및 매도 압력을 반영하는 가격의 지속적인 장중 변화를 일으킵니다. KO는 매일 누적되고 분배되는 주식 수의 차이를 "볼륨 포스"로 수량화합니다. 강력하고 상승하는 거래량은 상승세를 동반한 다음 상승세의 후반 단계와 다음 하락세의 초기 단계에서 시간이 지남에 따라 점차적으로 축소되어야 합니다. 이것은 바닥이 발달하기 전에 약간의 축적을 반영하는 증가하는 체적 힘이 뒤따라야 합니다.

* 거래량을 13일 트리거로 34일과 55일 지수이동평균의 차이를 나타내는 오실레이터로 변환하면 증권으로 들어오고 나가는 거래량의 힘을 쉽게 추적할 수 있습니다. 이 힘을 가격 행동과 비교하면 상단과 하단의 다이버전스를 식별하는 데 도움이 될 수 있습니다.

해석

Mr. Klinger는 KO 사용에 대해 다음 지침을 권장합니다.

1. 가장 신뢰할 수 있는 신호는 일반적인 추세의 방향으로 발생합니다. 엄격한 정지 지침(즉, 제로 라인 돌파 실패 또는 트리거 라인 위반)은 계속 유효해야 합니다.

2. 가장 중요한 신호는 특히 과매수/과매도 영역의 최고점 또는 최저점에서 KO가 기본 가격 조치와 분기할 때 발생합니다. 예를 들어, 주식이 한 사이클 동안 새로운 고점 또는 저점을 만들 때 KO가 이를 확인하지 못하면 추세가 모멘텀을 잃고 거의 완료될 수 있습니다.

3. 가격이 상승 추세에 있다면(즉, 89일 지수 이동 평균 이상), KO가 0 이하로 비정상적으로 낮은 수준으로 떨어졌다가 상승하여 시그널 라인을 넘을 때 매수합니다. 가격이 하락 추세에 있는 경우(즉, 89일 지수 이동 평균 아래), KO가 비정상적으로 높은 수준으로 0보다 높게 상승하고 하락하고 트리거 라인을 교차할 때 매도하십시오.

KO는 추세 방향의 타이밍 거래에는 잘 작동하지만 추세에 대해서는 덜 효과적입니다. 이것은 거래자가 일반적인 추세에 반하는 거래를 "스캘핑(scalp)"하려는 거래자에게 문제를 일으킬 수 있습니다. 그러나 KO가 다른 기술 지표 와 함께 사용되면 더 나은 결과를 얻을 수 있습니다. 과매수/과매도 상태를 확인하기 위해서는 William의 %R을, 단기 가격 방향을 확인하기 위해서는 Gerald Appel의 MACD를 추천합니다.

Stephen Klinger는 증권에 들어오고 나가는 누적 자금 흐름을 보기 위해 다음 공식을 제안합니다.

정액(kvo())

매수 및 매도 거래를 시작하기 위한 트리거 라인으로 공식의 13기간 이동 평균을 플로팅합니다.

소스 codenya untuk 무역 역

유형: 기능, 이름: VForce

변수: TSum(0), Trend(0), DM(0), CM(0);

TSum = 고가 + 저가 + 종가

IF TSum > TSum[1] 그러면

추세 = 1

또 다른

추세 = -1;

IF 추세 = 추세[1] 그러면

CM = CM + 범위

또 다른

CM = 범위 + 범위[1];

IF CM 0 그렇다면

VForce = 거래량 * AbsValue(2 * (DM/CM) -1) * 추세 * 100;

유형: 기능, 이름: KVO

입력:

FastX(숫자),

SlowX(숫자); 바르:

FX 평균(0),

SXAvg(0);

FXAvg = XAverage(VForce, FastX);

SXAvg = XAverage(VForce, SlowX);

KVO = FXAvg - SXAvg;

유형: 표시기, 이름: 클링거 볼륨 오실레이터

입력:

패스트X(34),

슬로우X(55),

TrigLen(13),

부드러운(1);

바르:

Trigger(0);Trigger = XAverage(KVO(FastX, SlowX), TrigLen);IF Smooth <= 1 다음 시작

플롯1(KVO(FastX, SlowX), "KVO");

Plot2(트리거, "KVO 트리거");

End Else BeginPlot1(Summation(KVO(FastX, SlowX), Smooth), "KVO");

Plot2(Summation(Trigger, Smooth), "KVO Trigger");

끝;

Plot3(0, "0");

Plot1이 Plot2 위를 교차하거나 Plot1이 Plot2 아래에서 교차하는 경우 또는

Plot2가 Plot3 위를 교차하거나 Plot2가 Plot3 아래에서 교차한 다음

경고 = 참;

누군가 이 코딩을 Mql4로 변환하는 데 도움을 주고 싶습니까?

고마워