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

 

다른 질문

이제 내 EA는 이렇게

if(FastMA2 SlowMA1)

{

닫기 위치();

OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),"",MAGIC,0,Blue);

리턴(0);

나는 이렇게 변하고 싶다

1. 15minutus timeflame 이벤트 구매 사인

2. 그렇다면 5분 타임플레임 MA 크로스 바이 사인 이미, 너무

닫기 위치. 그리고 새로운 직위를 얻다

그렇다면 5분 타임플레임 MA는 이미 판매 기호 를 변경합니다.

5분 동안 timeflame 변경 구매 기호를 기다리십시오.

그런 다음 ClosePosition. 그리고 새로운 직위를 얻다

이 프로그램을 작성하는 방법을 알려주세요.

 
파일:
 

여보세요

데모에서 사용하고 있으며 코딩을 배우는 데 도움이 되는 EA를 찾고 있습니다. 나는 4가지 입력 기준 중 어떤 것이 포지션을 여는 데 사용되었는지를 보여주기 위해 시스템에 코멘트를 추가하는 방법을 알아 내려고 노력하고 있습니다. 예를 들어 long2가 사용된 경우 long2 신호를 표시합니다.

어떤 도움이 될 것입니다

건배

베노

 
Beno:
여보세요

데모에서 사용하고 있으며 코딩을 배우는 데 도움이 되는 EA를 찾고 있습니다. 나는 4가지 입력 기준 중 어떤 것이 포지션을 여는 데 사용되었는지를 보여주기 위해 시스템에 코멘트를 추가하는 방법을 알아 내려고 노력하고 있습니다. 예를 들어 long2가 사용된 경우 long2 신호를 표시합니다.

어떤 도움이라도 좋을 것입니다

건배

베노

조건이 충족되고 Ordersend() 명령을 사용한 후 Comment(), Alert() 또는 Print() 문을 삽입하기만 하면 됩니다. 무엇이든 사용하세요.

이 같은:

if ( long2 == true)

{

주문 보내기();

{

Print(" long2 신호를 가져옴 ");

}

}

도움이 되기를 바랍니다.

 

고마워 울프

나는 웃어야만 했고 당신이 제안한 것을 넣었고 그것은 일종의 효과가 있었지만 지금은 댓글만 있고 열릴 위치가 없습니다. 힌트

bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<닫기[shift];

bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>닫기[shift] && MOMClose[shift];

bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<닫기[시프트];

bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>닫기[shift] && MOMClose[shift];

bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<닫기[시프트];

bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Close[shift] && MOMClose[shift];

bool Long4 = zscore>0.0 && ma<닫기[시프트];

부울 Short4 = zscoreClose[시프트];

Buysig = 긴 || 롱2 || 롱3 || 롱4;

Sellsig = 짧은 || 짧은2 || 쇼트3 || 쇼트4;

닫기 구매 = 판매 신호;

닫기 판매 = 구매;

if (curprof>=AccountBalance()*ProfitExit/100.0) {

종료 = 사실;

}

if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {

remorder=참;

}

}

무효 CheckForOpen() {

정수 res,tr;

//---- 판매 조건

co=CalculateCurrentOrders(Symbol());

if(판매 시그 && 라스트 시그!=-1) {

co=CalculateCurrentOrders(Symbol());

if (co==0) {

if (짧은 == 참)

if ( Short2 == true)

if ( Short3 == true)

res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);

Print(" 짧은 신호를 받았습니다 ");

Print(" Short2 신호가 찍혔습니다 ");

Print(" Short3 신호 수신 ");

Print(" Short4 신호 수신 ");

}

lastsig=-1;

마지막=시간[0];

반품;

}

//---- 구매 조건

if(구매 && 지속!=1) {

co=CalculateCurrentOrders(Symbol());

if (co==0) {

if ( 긴 == 참)

if ( Long2 == true)

if ( Long3 == true)

if ( Long4 == true)

res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);

Print(" 긴 신호를 받았습니다 ");

Print(" Long2 신호가 찍혔습니다 ");

Print(" Long3 신호가 찍혔습니다 ");

Print(" Long4 신호가 찍혔습니다 ");

}

마지막=시간[0];

lastsig=1;

반품;

}

}

수정했습니다 감사합니다

 

디버깅 코드

이와 같은 코드를 어떻게 그리고 어디에서 사용할 것입니까? 수정 방법을 찾을 수 없는 Zero Divide 오류가 있습니다.

extern bool 디버그 = true

...

if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- 이 변수는 이제 ", variableName);

... 더 많은 코드

if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- 이 변수는 이제 ", variableName);

... 더 많은 코드

if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- 이 변수는 이제 ", variableName);

...

 

저를 도와주실 수 있나요? 코드에 많은 실수가 있는 이유는 무엇입니까?

이것은 SMMA를 계산하는 것입니다:

for(j=0;j<막대;j++)

{

for(i=0,sum=0;i<ma_period;i++)

{

합계=합+닫기[j+i];

// 버퍼[j]=(합계/ma_period+닫기[j+i])/ma_period;

}

버퍼[j]=(합계/ma_period+닫기[j])/ma_period;

}

이것은 LWMA를 계산하는 것입니다

for(j=0;j<막대;j++)

{

for(i=0,sum=0,sum1=0;i<ma_period;i++)

{

합계=합+닫기[j+i];

합1=합1+종가[j+i]*(j+i);

// 버퍼[j]=sum/ma_period;

}

버퍼[j]=합1/합;

}

EMA를 계산하는 방법?

 

지표에 대한 질문

안녕하세요 여러분.

프로그래밍 문제에 갇혀 있습니다. 1 표시기 결과를 사용하여 다른 설정을 변경하는 방법을 아는 사람이 있습니까? 예를 들어, 일일 stockasti가 20보다 높으면 (x)의 이동 평균 을 원합니다. 나는 아래에서 작동하는 코드를 얻으려고 노력했지만 소용이 있다는 것을 알고 있습니다. 스위치 또는 if else 명령이 작동하지 않는 것 같습니다.

더블 4hrUP;

이중 daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);

이중 daystoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

이중 iMA(문자열 기호, int timeframe, four_hrUP , int ma_shift, int ma_method, int apply_price, int shift)

 
ajk:
안녕하세요 여러분.

프로그래밍 문제에 갇혀 있습니다. 1 표시기 결과를 사용하여 다른 설정을 변경하는 방법을 아는 사람이 있습니까? 예를 들어, 일일 stockasti가 20보다 높으면 (x)의 이동 평균을 원합니다. 나는 아래에서 작동하는 코드를 얻으려고 노력했지만 소용이 있다는 것을 알고 있습니다. 스위치 또는 if else 명령이 작동하지 않는 것 같습니다.

더블 4hrUP;

이중 daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);

이중 daystoch20 = 20;

if (daystoch1 > daystoch20) four_hrUP = 5 ;

이중 iMA(문자열 기호, int timeframe, four_hrUP , int ma_shift, int ma_method, int apply_price, int shift)

MA 변수는 어디에 있습니까?

어쩌면 이것이 도움이 될 수 있습니다

이중 ma4hr= iMA( 문자열 기호, int timeframe, four_hrUP , int ma_shift, int ma_method, int apply_price, int shift) ;

확률 계산이 동일한 루프에 있는 경우 "for(int shift=limit-1; shift>=0; shift--)"라고 가정하면 stoch 코드는 다음과 같아야 합니다.

이중 daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN, shift+1);

CMIIW

 

지표에 대한 약간의 도움 - Coder's Please Look

나는 가격 견적에서 분수 핍(피펫)을 사용하는 MT4 브로커 플랫폼을 테스트하고 있습니다. 예를 들어 EURJPY의 경우 164.38 대신 164.381로 인용합니다. 이는 스프레드에 4.1핍(4 대신)과 같은 소수가 있음을 의미합니다.

누구든지 Spread가 제대로 읽히도록 다음 코드를 수정하는 방법을 알려줄 수 있습니까? 현재 4.1핍 스프레드는 지표에서 41.0으로 표시됩니다. 도움을 주시면 감사하겠습니다.

//---- 확산

Spread=NormalizeDouble((Ask-Bid)/Point,1);

ObjectSetText("Spread Monitor1","Spread:", 10, "Arial", labelColor);

ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor);