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

 

안녕하세요, 스크립트 코드 전문가의 도움이 필요합니다. 아래와 같이 2세트의 보류 중인 주문 을 코딩하고 싶습니다.

세트 1

보류 중인 주문.

GBPUSD (매수 정지) ,

EURUSD(매수 정지),

AUDUSD(매수 정지),

NZDUSD(매수 정지),

USDJPY(매도 정지),

USDCAD(매도 정지),

USDCHF(매도 정지)

세트 2

보류 중인 주문.

GBPUSD (매도 정지),

EURUSD (매도 정지),

AUDUSD(매도 정지),

NZDUSD(매도 정지),

USDJPY(매수 정지),

USDCAD(매수 정지),

USDCHF(매수 정지)

감사합니다.

 

여기에 후행 정지 코드와 구매 코드가 있습니다. 여기에 문제가 있을 수 있지만 확실하지 않습니다......

//후행 정지

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - 묻기) > (포인트 * (TrailingStop+0.5))) {

if((OrderStopLoss() > (Ask + Point * (TrailingStop+0.5))) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), 묻기 + 포인트 * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = 막대;

계속하다;

//구입하다

if (주문 == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (막대 != BarCount)))) {

if(DecideToOpenTrade(OP_BUY) && TradeSlotsAvailable()) {

if (UseStopLoss) StopLossLevel = 묻기 - StopLoss * 포인트; 그렇지 않으면 StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = 묻기 + TakeProfit * 포인트; 그렇지 않으면 TakeProfitLevel = 0.0;

티켓 = OrderSend(Symbol(), OP_BUY, lot, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(티켓 > 0) {

if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES)) {

Print("구매 주문이 열렸습니다 : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} 또 다른 {

Print("구매 주문 열기 오류: ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = 막대;

반환(0);

 

EA는 거래를 열지 않습니다..... ??

내 EA에 문제가 있습니다. 후행 스톱을 사용하면 거래가 잘 열리지만 후행 스톱과 스톱로스를 함께 사용하려고 하면 거래가 열리지 않습니다. 백테스트 에서는 이런 식으로 잘 작동하지만 차트에서 실제 거래를 열지는 않습니다. 저는 5핍의 후행 정지와 200핍의 정지 손실을 실행하려고 합니다. 이견있는 사람? 필요한 경우 공개 거래 코딩을 게시할 수 있습니다.

감사해요!

 

오류 코드 는 전문가 탭을 확인하세요.

 

거기에 오류가 없습니다. 후행 정지 및 손절매가 활성화되어 있을 때 거래를 시작한다고 가정하면 아무 것도 없습니다. 그것이 후행 정지 일 때, 그것은 정상처럼 탭에 모든 거래를 가지고 있습니다.

 

초 또는 ms의 시간?

안녕하세요 mt4에 대한 특정 시간 문자열을 찾고 있었는데 이것을 찾았습니다.

if ((CurTime()-OrderOpenTime()>300))

지금 내 질문: 그 300은 300초입니까, 밀리초입니까? 아니면 무엇입니까?

고마워 얘들아

 

MT4의 날짜/시간 변수는 내부적으로 긴 정수 값 또는 4바이트(2^32) 정수 값으로 저장되며 epoch 이후 경과된 시간(초)을 나타냅니다.

귀하의 질문에 대답하려면 300초입니다.

 

이 코드가 필요한 작업을 수행합니까?

이 코드가 내 전략에 필요한 CCI의 맨 위에 RSI를 제공합니까?

CCI의 "이전 지표 데이터"를 사용하여 RSI를 읽으려면 EA가 필요합니다.

이중 구매1_1 = iCCI(NULL, 0, 10, PRICE_OPEN, 현재 + 0);

이중 구매2_1 = iRSI(NULL, 0, 3, 7, 현재 + 0);

 

지정된 시간 범위에 대해 High/Low를 반환하시겠습니까?

안녕하세요 롱롱러커 1기포스터입니다.

잘못된 섹션에 게시한 경우 죄송합니다. 지정된 시간 범위의 상한/하한 값을 반환하는 방법을 결정하려고 합니다.

나는 다음과 같은 방법이 편하다....

iLow(NULL, PERIOD_D1, 0);

그러나 내가 시도하는 것은 전날 23:00부터 현재 날짜의 06:00까지 범위를 지정하고 23:00이 다시 반올림될 때까지 해당 범위를 변수로 유지하는 것입니다.

이것에 대한 어떤 지침도 도움이 될 것입니다. 감사해요!

 

MQL4 문자열 형식화

문자열을 오른쪽으로 정렬하기 위해 왼쪽 패드를 제공하기 위해 '\x20' 및 '\xA0'을 사용해 보았습니다. 그들이 제공하는 간격은 부적절합니다. 누구든지 MQL4에서 이 작업을 수행하는 더 좋은 방법을 알고 있습니까?