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

 

안녕,

이 표시기/도구를 코딩하는 방법을 생각하고 있습니다.

몇 일(예: 12/10/2012-15/10/2012 또는 15/10/2012-15/10/2012)로 작성한 후 지표, 스크립트 또는 이와 유사한 것이 필요합니다. csv 또는 Excel 파일은 TF에 따라 차트에 표시된 양초에 대해 고가 및 저가를 열고 닫습니다(예: 하루만 결정하고 1시간 TF에 첨부하면 사양과 함께 24개의 양초를 씁니다).

당신의 도움에 미리 감사드립니다

 

경고 신호 문제.

집에 있는 여러분, 안녕하세요. 제가 작성한 MT4 코드에 이 작은 문제가 있습니다. 이 코드는 3개의 indys, stoichastic, RSI 및 CCI를 감시한다고 가정합니다. stoichastic이 신호 라인을 위 또는 아래로 교차하고 기간 70 및 6의 RSI를 교차하는 경우 서로 위 또는 아래로 교차하고 CCI가 0 위 또는 아래에 있으면 전체 3개의 indy가 신호 라인 위에 있으면 매수 신호가 있어야 하고 3개의 indy가 신호 라인 아래에 있으면 매도 신호가 있어야 합니다...... ..이 코드는 작동하지만 경고가 있을 때마다 촛불의 각 틱마다 계속 반복됩니다. 현재 촛불에서 세 가지 조건이 충족되고 다시 소리가 나지 않는 경우 이 경고가 한 번만 울리도록 하려면 어떻게 해야 합니까? 이것은 아래의 코드입니다.

if(마침표()==240){

이중 ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

이중 ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

이중 RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

이중 RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);

이중 b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

더블 nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);

더블 b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);

더블 nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);

// 경고

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){

Alert("화살표 구매","\n"," 현재 시간 은 ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){

Alert("화살표 판매","\n","현재 시간은 ",TimeToStr(CurTime()),"\n",Symbol());

}

}

 
mladen:
푸우

그것은 단순히 다른 기호의 값이 너무 다를 수 있기 때문입니다(예를 들어 현재 GBPJPY는 약 126이고 EURUSD는 약 100배 적습니다. 동일한 차트에 해당 값을 그릴 때 EURUSD의 값은 단순히 "그림에서 벗어납니다. 메타 트레이더는 GBPJPY 값을 차트 스케일링 기준으로 사용하기 때문입니다.

이 스레드를 살펴보십시오: https://www.mql5.com/en/forum/178052 . 해당 스레드에 유사한 문제에 대한 몇 가지 솔루션이 이미 있습니다.

믈라덴 감사합니다. 귀하의 링크를 따라가서 내 필요에 맞는 지표를 찾았습니다.

푸우

 

다음과 같이 시도하십시오.

if(Period()==240)

{

static datetime lastAlerted=0;

double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);

double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);

double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);

double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);

// alerts

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))

{

lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))

{

lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

}
Mastercash:
집에 있는 여러분, 안녕하세요. 제가 작성한 MT4 코드에 이 작은 문제가 있습니다. 이 코드는 3개의 indys, stoichastic, RSI 및 CCI를 감시한다고 가정합니다. stoichastic이 신호 라인을 위 또는 아래로 교차하고 기간 70 및 6의 RSI를 교차하는 경우 서로 위 또는 아래로 교차하고 CCI가 0 위 또는 아래에 있으면 전체 3개의 indy가 신호 라인 위에 있으면 매수 신호가 있어야 하고 3개의 indy가 신호 라인 아래에 있으면 매도 신호가 있어야 합니다...... ..이 코드는 작동하지만 경고가 있을 때마다 촛불의 각 틱마다 계속 반복됩니다. 현재 촛불에서 세 가지 조건이 충족되고 다시 소리가 나지 않는 경우 이 경고가 한 번만 울리도록 하려면 어떻게 해야 합니까? 이것은 아래 코드입니다.

if(마침표()==240){

이중 ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

이중 ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

이중 RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

이중 RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);

이중 b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

더블 nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);

더블 b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);

더블 nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);

// 경고

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){

Alert("화살표 구매","\n","현재 시간은 ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){

Alert("화살표 판매","\n","현재 시간은 ",TimeToStr(CurTime()),"\n",Symbol());

}

}
 

경고 문제

mladen에게 감사드립니다. 시도해 보겠습니다. LastAlert() 함수 에 대해 메모해 두지 않았습니다. 이 모든 "tranche rouse" mt4 함수의 디렉토리를 얻을 수 있는 위치를 알려주십시오.

 

마스터캐시

주의: 이것은 함수 가 아니라 마지막 경고의 시간(막대 시간)을 저장하는 데 사용되는 정적 변수이며 동일한 막대에서 여러 경고를 방지합니다. 불행히도 메타트레이더에는 LastAlert()와 같은 함수가 없으므로 우리는 함수 부족을 해결하기 위해 예제에서 해결 방법을 찾아야 합니다.

Mastercash:
mladen에게 감사드립니다. 시도해 보겠습니다. LastAlert() 함수에 대해 메모해 두지 않았습니다. 이 모든 "tranche rouse" mt4 함수의 디렉토리를 얻을 수 있는 위치를 알려주십시오.
 

안녕하세요 mladen입니다.

24개의 마지막 시간 요일 촛불에 대해 각각 24개의 변수를 할당해야 합니다.

나는 양초로 약간의 계산을 해야 하고 그 결과는 버퍼에 할당될 것입니다.

전날의 24시간 촛불 각각에 대해 어떻게 코딩할 수 있습니까?.

고맙습니다

 

다시오

이와 유사한 것을 사용할 수 있습니다(이 모드는 배열을 사용하지 않습니다). 또한 이 예는 현재 날짜에 대한 것입니다.

datetime startTime = iTime(NULL,PERIOD_D1,0);

for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)

{

//

//

// processing the hourly data ... just an example here

//

//

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); // and so on ...

}

dasio:
안녕하세요 mladen입니다.

24개의 마지막 시간 요일 촛불에 대해 각각 24개의 변수를 할당해야 합니다.

나는 양초로 약간의 계산을 해야 하고 그 결과는 버퍼에 할당될 것입니다.

전날의 24시간 촛불 각각에 대해 어떻게 코딩할 수 있습니까?.

고맙습니다
 
mladen:
다시오

이와 유사한 것을 사용할 수 있습니다(이 모드는 배열을 사용하지 않습니다). 또한 이 예는 현재 날짜에 대한 것입니다.

datetime startTime = iTime(NULL,PERIOD_D1,0);

for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)

{

//

//

// processing the hourly data ... just an example here

//

//

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); // and so on ...

}

감사합니다.

이 예에서:

이중 닫기 = iClose (NULL,PERIOD_H1,i); //

이중 열림 = iOpen(NULL,PERIOD_H1,i); //

어떤 양초 rappresent와 어떻게 다음 양초로 전환할 수 있습니까? 아이+1?

고맙습니다

 

다시오

그것은 이미 오늘의 모든 시간을 반복하고 있습니다. iClose() 및 iOpen()을 1시간이 아닌 다른 시간 프레임에서 호출의 예로 배치했습니다. 현재 날짜와 다른 날짜에 액세스하려면 datetime에서 "0"을 바꾸십시오. startTime = iTime ( NULL , PERIOD_D1 , 0 ); 데이터 수집을 원하는 날짜 부분

dasio:
감사합니다.

이 예에서:

이중 닫기 = iClose(NULL,PERIOD_H1,i); //

이중 열림 = iOpen(NULL,PERIOD_H1,i); //

어떤 양초 rappresent와 어떻게 다음 양초로 전환할 수 있습니까? 아이+1?

고맙습니다