코딩에 도움이 필요합니다 - 페이지 8

 

이 같은 :

if (MACD[0]>MACD[1]) Alert("Message to use for alert"):
Jovager:
여보세요,

표시기에서 경고를 어떻게 코딩할 수 있습니까?

예를 들어 MACD[0]>MACD[1]일 때 얼마나 경고합니까?

도움에 감사드립니다.

 
mladen:

이 같은 :

if (MACD[0]>MACD[1]) Alert("Message to use for alert"):

감사합니다 Mladen, 하지만 어디?

나는 메시지를 가지고 있었다 :

빨간색 -If_function이 정의되지 않음

Red-Alert_세미콜론 필요

-------------------------------------------------- -------------------------------------------------- --------------

#속성 표시기_분리_창

#속성 표시기_버퍼 2

#property indicator_color1 실버

#property indicator_color2 빨간색

#속성 표시기_너비1 2

//---- 표시기 매개변수

외부 int FastEMA=12;

extern int SlowEMA=26;

외부 정수 SignalSMA=9;

//---- 표시기 버퍼

이중 MacdBuffer[];

이중 신호 버퍼[];

//+----------------------------------------------- -------------------+

//| 커스텀 인디케이터 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//---- 그리기 설정

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,SignalSMA);

IndicatorDigits(숫자+1);

//---- 표시기 버퍼 매핑

SetIndexBuffer(0,MacdBuffer);

SetIndexBuffer(1, 신호 버퍼);

//---- DataWindow의 이름 및 표시기 하위 창 레이블

IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");

SetIndexLabel(0,"MACD");

SetIndexLabel(1,"신호");

//---- 초기화 완료

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 이동 평균 수렴/발산 |

//+----------------------------------------------- -------------------+

정수 시작()

{

정수 제한;

int counted_bars=IndicatorCounted();

//---- 마지막으로 계산된 막대가 다시 계산됩니다.

if(counted_bars>0) counted_bars--;

limit=막대-counted_bars;

//---- 첫 번째 버퍼에서 계산된 macd

for(int i=0; i<limit; i++)

MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

//---- 두 번째 버퍼에서 카운트된 신호 라인

for(i=0; i<한계; i++)

SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);

//---- 완료

반환(0);

}

//+--------------------------------------------

 

코드의 마지막 반환 직전(이렇게 하면 나머지 모든 처리가 완료된 경우에만 실행되도록 보장)

Jovager:
감사합니다 Mladen, 하지만 어디?

나는 메시지를 가지고 있었다 :

빨간색 -If_function이 정의되지 않음

Red-Alert_세미콜론 필요

-------------------------------------------------- -------------------------------------------------- --------------

#속성 표시기_분리_창

#속성 표시기_버퍼 2

#property indicator_color1 실버

#property indicator_color2 빨간색

#속성 표시기_너비1 2

//---- 표시기 매개변수

외부 int FastEMA=12;

extern int SlowEMA=26;

외부 정수 SignalSMA=9;

//---- 표시기 버퍼

이중 MacdBuffer[];

이중 신호 버퍼[];

//+----------------------------------------------- -------------------+

//| 커스텀 인디케이터 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//---- 그리기 설정

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,SignalSMA);

IndicatorDigits(숫자+1);

//---- 표시기 버퍼 매핑

SetIndexBuffer(0,MacdBuffer);

SetIndexBuffer(1, 신호 버퍼);

//---- DataWindow의 이름 및 표시기 하위 창 레이블

IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");

SetIndexLabel(0,"MACD");

SetIndexLabel(1,"신호");

//---- 초기화 완료

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 이동 평균 수렴/발산 |

//+----------------------------------------------- -------------------+

정수 시작()

{

정수 제한;

int counted_bars=IndicatorCounted();

//---- 마지막으로 계산된 막대가 다시 계산됩니다.

if(counted_bars>0) counted_bars--;

limit=막대-counted_bars;

//---- 첫 번째 버퍼에서 계산된 macd

for(int i=0; i<limit; i++)

MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

//---- 두 번째 버퍼에서 카운트된 신호 라인

for(i=0; i<한계; i++)

SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);

//---- 완료

리턴(0);

}

//+--------------------------------------------
 

Pls는 시간 프레임을 "0"으로 사용할 때 0 나누기 오류를 수정합니다.

pivot_crazy.mq4 시간 프레임을 "0"으로 사용할 때 0 나누기 오류를 수정해 주실 수 있나요?

감사해요.

파일:
 

시도해보십시오. 지금 수정했습니다

privateer:
pivot_crazy.mq4 누군가 타임프레임을 "0"으로 사용할 때 영분할 오류를 수정해 주시겠습니까? 감사합니다.
파일:
 

감사합니다 mladen은 매력처럼 작동합니다

mladen:
시도해보십시오. 지금 수정했습니다

감사합니다 mladen은 매력처럼 작동합니다

 

이 ea에 도움이 필요하지만 martingale 기능이 있는 위치가 손실에서 닫힌 위치가 손실에서 닫힌 마지막 위치의 제비를 곱해야 하지만 코드 오류가 martingale을 만드는 경우와 같이 제대로 작동하지 않습니다. 여기에서 제대로 작동하려면 ea universalmacrossea.mq4

파일:
 

손실 후 새로운 주문을 여는 방식은 마틴게일 + 마틴게일이 열린 위치에서 작동하지 않습니다.

blondutrader:
이 ea에 도움이 필요하지만 martingale 기능이 있는 위치가 손실에서 닫힌 위치가 손실에서 닫힌 마지막 위치의 제비를 곱해야 하지만 코드 오류가 martingale을 만드는 경우와 같이 제대로 작동하지 않습니다. 여기에서 제대로 작동하려면 ea universalmacrossea.mq4
 

모든 거래 수수료가 내 돈의 5%로 거래되고 싶을 때 내 로트 크기를 어떻게 계산할 수 있습니까?

 

선샤인,

다음 기능 을 사용해 보세요.

double getLots(string symbol, double Risk, double stopLossDistance)

{

RefreshRates();

double lots = 0;

double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);

double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);

double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);

int LotDigit = 2;

if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;

//

//

//

//

//

if (LotStep==1) LotDigit=0;

if (LotStep==0.1) LotDigit=1;

if (LotStep==0.01) LotDigit=2;

if (Risk>0)

{

if (AccountBalance()>AccountFreeMargin())

lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);

else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);

}

//

//

//

//

//

lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);

lots = MathMax(MathMin(lots,MaxLots),MinLots);

return(lots);

}
sunshineh:
모든 거래 수수료가 내 돈의 5%로 거래되고 싶을 때 내 로트 크기를 어떻게 계산할 수 있습니까?