코딩 도움말 - 페이지 245

 
mladen:
마세리나

첫 번째 부분만(나머지는 그것의 변형일 뿐입니다):

ema(7) < ema(21) 및 이전 ema(7) < 이전 ema(21)이면 ema(of rsi(14),9) < rsi(14)가 매수 신호

이렇게도 말할 수 있습니다.

macd(7,12) < 및 이전 macd(7,12) < 0이면 ema(of rsi(14),9) < rsi(14)가 매수 신호

mladen이 기준으로 mt4 표시기를 코딩할 수 있습니까?

미리 감사드립니다

 
macerina:
mladen이 기준으로 mt4 표시기를 코딩할 수 있습니까? 미리 감사드립니다.

마세리나

그것은 간단한 macd + rsi 시스템입니다. 나는 그런 것이 이미 있다고 믿습니다. 그런 게 없으면 지표를 만들기 쉬우며 그렇게 하면 된다.

 
mladen:
여기에 설명된 것을 달성하려는 코드 부분을 게시하십시오. https://www.mql5.com/en/forum/174385/page162 , 그러나 당신이 설명한 것을 정확히 수행하려고 하는 부분) 그런 다음 누군가가 당신의 코딩을 도와줄 수 있습니다.

// 오픈 구매 주문을 계산합니다.

iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());

// 오픈 판매 주문을 계산합니다.

iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());

if (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)

{

if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);

}

if (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)

{

if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);

}

////////////////////////////////////////////////////// ///////////////////////////////////////////////

EA가 부착된 페어에 대한 오픈 오더 수를 찾는 부분이었습니다.

3개의 주문을 찾으면 일반적인 Trailing Stop 기능을 따릅니다. 그리고 실행 중인 거래가 하나만 있는 경우 Second Trailing Stop 기능을 따릅니다.

이것은 단일 쌍에 대해 '확인'을 실행하고 있지만 이 EA를 여러 차트(쌍)에 첨부하면 'OrdersTotal()' 함수를 통해 모든 미결 주문을 가져오기 때문에 작동하지 않습니다.

한 가지 문제가 즉시 마음에 떠오릅니다. 3개의 주문이 있었고 1개의 주문만 남았는지 어떻게 알 수 있습니까?

//종료 - 오픈 매도 포지션 닫기----------------------------------------------------------

더블 OpenPrice=묻다;

정수 수 = 3;

if (카운트==3)

{

BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize, OpenPrice, Slippage,dStopLossPrice,dTakeProfitPrice_1, "주문 구매",MagicNumber, 0,Blue);

if (BuyOrder_1>0) //주문이 열렸는지 확인

{

sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 구매 주문 1이 성공적으로 전송되었습니다. Ticket=" + BuyOrder_1;

카운트 = 카운트 - 1;

////////////////////////////////////////////////////// /////////////

따라서 count는 감소하고 count=1까지 주문을 엽니다. 따라서 처음에는 3개의 주문이 count=3으로 시작됩니다.

 
Oridroo:
// 오픈 구매 주문을 계산합니다.

iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());

// 오픈 판매 주문을 계산합니다.

iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());

if (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)

{

if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);

}

if (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)

{

if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);

}

////////////////////////////////////////////////////// ///////////////////////////////////////////////

EA가 부착된 페어에 대한 오픈 오더 수를 찾는 부분이었습니다.

3개의 주문을 찾으면 일반적인 Trailing Stop 기능을 따릅니다. 그리고 실행 중인 거래가 하나만 있는 경우 Second Trailing Stop 기능을 따릅니다.

이것은 단일 쌍에 대해 '확인'을 실행하고 있지만 이 EA를 여러 차트(쌍)에 첨부하면 'OrdersTotal()' 함수를 통해 모든 미결 주문을 가져오기 때문에 작동하지 않습니다.

//종료 - 오픈 매도 포지션 닫기----------------------------------------------------------

더블 OpenPrice=묻다;

정수 수 = 3;

if (카운트==3)

{

BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize, OpenPrice, Slippage,dStopLossPrice,dTakeProfitPrice_1, "주문 구매",MagicNumber, 0,Blue);

if (BuyOrder_1>0) //주문이 열렸는지 확인

{

sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " 구매 주문 1이 성공적으로 전송되었습니다. Ticket=" + BuyOrder_1;

카운트 = 카운트 - 1;

////////////////////////////////////////////////////// /////////////

따라서 count는 감소하고 count=1까지 주문을 엽니다. 따라서 처음에는 3개의 주문이 count=3으로 시작됩니다.

질문은 다음과 같았습니다. 한 번 3개의 열린 주문이 있었고 한 번만 남았는지 어떻게 알 수 있습니까? 열린 주문이 하나만 남아 있다는 사실은 아무 것도 표시하지 않습니다. 당신은 트리플렛의 일부였던 2개의 다른 주문에 대한 마감된 주문 목록을 확인 해야 하고, 브로커가 당신의 코멘트 필드를 변경할 수 있기 때문에 일부 주문이 동일한 트리플렛의 일부였다는 것을 어떻게 알 수 있는 방법이 없습니다( 일부 주문이 동일한 주문 그룹에 속해 있음을 표시하는 데 사용할 수 있는 주문 목록의 필드 없음).

트리플렛에 속한 티켓 번호를 저장하기 위해 파일을 사용할 수도 있지만, 다른 터미널에서 동일한 EA를 사용하려고 하면 끔찍한 오류가 발생할 수 있습니다. metatrader를 다시 설치할 때도 같은 일이 발생할 수 있습니다. 전역 변수를 사용하는 것은 훨씬 더 나쁩니다(파일을 사용하는 것과 거의 동일하지만 더 나빠짐). 따라서 세 개의 주문을 올바르게 추적할 수 있는 의미 있는 방법이 없습니다.

그렇다면 1개의 열린 주문이 3개의 마지막으로 열린 주문인지 아니면 새로운 3중 주문의 첫 번째 열린 주문인지 어떻게 알 수 있습니까?

 
mladen:
질문은 다음과 같았습니다. 한 번 3개의 열린 주문이 있었고 한 번만 남았는지 어떻게 알 수 있습니까? 열린 주문이 하나만 남아 있다는 사실은 아무 것도 표시하지 않습니다. 당신은 트리플렛의 일부였던 2개의 다른 주문에 대한 마감된 주문 목록을 확인해야 하고, 브로커가 당신의 코멘트 필드를 변경할 수 있기 때문에 일부 주문이 동일한 트리플렛의 일부였다는 것을 어떻게 알 수 있는 방법이 없습니다( 일부 주문이 동일한 주문 그룹에 속해 있음을 표시하는 데 사용할 수 있는 주문 목록의 필드 없음). 그렇다면 1개의 열린 주문이 3개의 마지막으로 열린 주문인지 아니면 새로운 3중 주문의 첫 번째 열린 주문인지 어떻게 알 수 있습니까?

믈라덴,

오후 확인하세요, 코더가 필요합니다

PM의 BIG 아이콘을 꿈꾸다!

 
mladen:
그렇다면 1개의 열린 주문이 3개의 마지막으로 열린 주문인지 아니면 새로운 3중 주문의 첫 번째 열린 주문인지 어떻게 알 수 있습니까?

조건이 있습니다:

if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

따라서 이를 통해 기존 구매 주문이 있는 경우 조건을 충족하더라도 새 구매 주문이 열리지 않도록 합니다. 기존 구매/판매 주문이 없을 때만 새 주문이 열립니다.

그리고 같은 종류의 주문(매수/매도)이 동시에 3개 열리고 그 중 2개가 이미 닫혀 있으면 왼쪽이 같은 종류의 주문이 확실합니다.

나는 그것을 테스트했다. 그래서 그것에 대해 혼란이 없습니다.

 
Oridroo:
조건이 있습니다:

if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)

따라서 이를 통해 기존 구매 주문이 있는 경우 조건을 충족하더라도 새 구매 주문이 열리지 않도록 합니다. 기존 구매/판매 주문이 없을 때만 새 주문이 열립니다.

그리고 같은 종류의 주문(매수/매도)이 동시에 3개 열리고 그 중 2개가 이미 닫혀 있으면 왼쪽이 같은 종류의 주문이 확실합니다.

나는 그것을 테스트했다. 그래서 그것에 대해 혼란이 없습니다.

전체에 많은 가정이 있습니다. 첫 번째는 3개의 주문을 열려고 하면 실제로는 3개의 주문이 열립니다. 1개만 뜨면? . 등등 ...

죄송합니다. 그러나 우리는 항상 다른 것에 대해 이야기하고 있는 것 같습니다. 내가 할 수 없기 때문에 누군가가 당신을 도울 수 있기를 바랍니다.

행복한 거래

 
mladen:
전체에 많은 가정이 있습니다. 첫 번째는 3개의 주문을 열려고 하면 실제로는 3개의 주문이 열립니다. 1개만 뜨면? . 등등 ...

죄송합니다. 그러나 우리는 항상 다른 것에 대해 이야기하고 있는 것 같습니다. 내가 할 수 없기 때문에 누군가가 당신을 도울 수 있기를 바랍니다.

행복한 거래

할 수 없다면 괜찮습니다.

나는 다른 중개인과 잠시 동안 그것을 테스트했으며 지금까지 3 개의 주문을 여는 데 '실패'하지 않았습니다.

어쨌든, 내가 'OrdersTotal()'을 호출하는 동안 EA가 다른 쌍을 구별할 수 있게 하는 포인트/논리를 적어도 말할 수 있다고 생각합니까?

모든 작은 EA 예제는 괜찮을 것입니다.

 
macerina:
mladen이 기준으로 mt4 표시기를 코딩할 수 있습니까? 미리 감사드립니다.

마세리나

이 게시물에서 지표를 확인하십시오: https://www.mql5.com/en/forum/173574/page432 . aspen 그래픽 코드에서 설명한 것과 거의 동일합니다.

 

코드를 제공한 Mladen에게 감사합니다. ... 이전 논리에서 설명한 대로 이중 macd 비교 및 50 크로스오버가 있습니까?

미리 감사드립니다

사유: