묻다! - 페이지 51

 
pawang:
안녕

제 질문이 너무 기초적인 것이라면 정말 죄송합니다.

mql4를 배우고 있습니다.

mql4에서 이 수학 조건을 표현하는 방법을 알려주세요.

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then.. ... ... ...

|X| 절대적이다; 그것은 (X 1)을 의미합니다

MetaEditor에서 메시지를 받았습니다.

"표현이 너무 복잡한 경우"

여러 번 시도한 끝에... 더 이상 아이디어가 없습니다. 그래서 방법을 알려주세요..

감사해요

이 시도:

if((a>b && MathAbs(x)<1) && y<z)

{

//여기에 무슨 일이 일어나야 하는지 쓰십시오

}

 

오라클에 대한 질문...

어쨌든 EA가 최적화를 실행하고 매일 자동으로 설정을 조정하도록 하는 방법이 있습니까?

16개 매개변수 에 대해 30일 이익률 최적화를 실행하고 싶습니다. 다시 거래를 시작하기 전에 설정을 적용하도록 합니다. 매일 약 8시간 동안 자동으로 종료됩니다. 실행하기에 완벽한 시간이 될 것입니다 ...

코딩하는 방법을 아는 사람은... Great EA 수준에서 Insanley 수익성 있는 AI 수준으로 가져올 것입니다...

이것은 또한 모든 사람들이 그곳에서 사용할 수 있는 좋은 코드가 될 수 있습니다. EA 시장은 왜 우리 EA가 더 똑똑해져야 하는지 끊임없이 조정합니다.

EA 포엠에도 올렸는데 지금까지 몰랐네요..

당신의 도움을 주셔서 감사합니다.

 

조언 부탁드립니다

MACD가 음수를 교차하고 음수 영역에 있으면 빨간색으로 유지되고 양수 영역에 있으면 녹색을 유지하기 위해 내가 게시한 그림의 표시기와 같은 별도의 창에 막대 표시기를 만들 수 있습니까? 등등. 또한 가격이 이동 평균 아래로 내려가는 경우에 대해 동일한 막대 표시기 창을 만드는 것이 가능합니다.

이것이 어리석은 질문처럼 보인다면 저를 참아 주십시오. 차트의 지표를 볼 때 가격이 어떻게 될지 예상하고 시도하는 경향이 있으므로 모두 동일한 색상을 표시할 때 거래할 별도의 창 표시기를 사용하려고 합니다. [심리학적 이유]. 이러한 개별 막대 유형 표시기의 생성은 내가 만드는 방법을 배울 수 있는 것입니까? 저는 어떤 언어의 프로그래머와도 거리가 멉니다.

어떤 조언도 대단히 감사하겠습니다.

파일:
chart.jpg  11 kb
 
pawang:
안녕

제 질문이 너무 기초적인 것이라면 정말 죄송합니다.

mql4를 배우고 있습니다.

mql4에서 이 수학 조건을 표현하는 방법을 도와주세요.

IF( (A>B) AND (|X| <1) AND (Y<Z) ) then.. ... ... ...

|X| 절대적이다; 그것은 (X 1)을 의미합니다

MetaEditor에서 메시지를 받았습니다.

"표현이 너무 복잡한 경우"

여러 번 시도한 끝에... 더 이상 아이디어가 없습니다. 그래서 방법을 알려주세요..

감사해요

if(a>b && (x 1) && y<z){

;당신의 코드

}

또는 x=0일 때 MathAbs(x) < 1만이 참이기 때문에 (x 1) 대신 x == 0일 수도 있습니다.

http://docs.mql4.com/basis/operations/bool

다른 생각에 아마도 당신은 단순히 이것을 필요로 할 것입니다:

if(a>b && x<1 && y<z)

아니면 이거

if(a>b && x<-1 && y<z)

x는 정의에 따라 0 또는 -1이 아니기 때문에

나는 당신의 절대 가치의 정의에 혼란 스럽습니다

 
dxx:
MACD가 음수를 교차하고 음수 영역에 있으면 빨간색으로 유지되고 양수 영역에 있으면 녹색을 유지하기 위해 내가 게시한 그림의 표시기와 같은 별도의 창에 막대 표시기를 만들 수 있습니까? 등등. 또한 가격이 이동 평균 아래로 내려가는 경우에 대해 동일한 막대 표시기 창을 만드는 것이 가능합니다.

이것이 어리석은 질문처럼 보인다면 저를 참아 주십시오. 차트의 지표를 볼 때 가격이 어떻게 될지 예상하고 시도하는 경향이 있으므로 모두 동일한 색상을 표시할 때 거래할 별도의 창 표시기를 사용하려고 합니다. [심리학적 이유]. 이러한 개별 막대 유형 표시기의 생성은 내가 만드는 방법을 배울 수 있는 것입니까? 저는 어떤 언어의 프로그래머와도 거리가 멉니다.

어떤 조언도 대단히 감사하겠습니다.

네, 가능합니다.

 
dxx:
MACD가 음수를 교차하고 음수 영역에 있으면 빨간색으로 유지되고 양수 영역에 있으면 녹색을 유지하기 위해 내가 게시한 그림의 표시기와 같은 별도의 창에 막대 표시기를 만들 수 있습니까? 등등. 또한 가격이 이동 평균 아래로 내려가는 경우에 대해 동일한 막대 표시기 창을 만드는 것이 가능합니다.

이것이 어리석은 질문처럼 보인다면 저를 참아 주십시오. 차트의 지표를 볼 때 가격이 어떻게 될지 예상하고 시도하는 경향이 있으므로 모두 동일한 색상을 표시할 때 거래할 별도의 창 표시기를 사용하려고 합니다. [심리학적 이유]. 이러한 개별 막대 유형 표시기의 생성은 내가 만드는 방법을 배울 수 있는 것입니까? 저는 어떤 언어의 프로그래머와도 거리가 멉니다.

어떤 조언도 대단히 감사하겠습니다.

여기에 당신이 원하는 것이 있습니다. 모두 빨간색이 매도일 때, 모두 파란색이 구매할 때 아래와 같이 다른 설정으로 하나의 차트에 동일한 지표의 4개 모두를 로드합니다.

설정

15분 동안 먼저 설정

두 번째 30분

세 번째 60분

앞으로 140분

파일:
 

감사해요

여러분, 감사합니다. 게시된 지표를 살펴보겠습니다.#

매우 감사합니다

 

다른 창에 일정한 눈금 차트나 일정한 범위 막대를 표시하는 일종의 표시기를 작성할 수 있습니까? 이들은 시간 기반이 아닌 다양한 형태의 차트 작성입니다. 예를 들어, 가격이 100틱 이동할 때마다 100틱 바가 형성됩니다. 따라서 소량에서는 막대가 형성되지 않습니다. 가격이 범위에서 정해진 수의 틱을 이동할 때마다 일정한 범위 막대가 형성됩니다. 예를 들어, 가격이 20핍 범위를 채울 때마다 20개로 설정된 범위 막대가 형성됩니다. 그런 다음 다음 막대가 시작됩니다. 이것들은 시간 기반이 아니기 때문에 이 플랫폼에서 가능한지 확실하지 않습니다.

 

EA에 간단한 경고 추가

안녕하세요, 여기에서 제가 필요한 작은 도움을 찾길 바랍니다! 예를 들어 이 EA에 대한 경고를 추가하는 방법을 보여 주시겠습니까? 구매 조건이 충족되면 저에게도 알려줍니다.

고맙습니다,

사자 별자리

외부 정수 MagicNumber = 0;

extern bool SignalMail = 거짓;

extern bool EachTickMode = False;

extern 이중 로트 = 1.0;

extern int 미끄러짐 = 3;

extern bool StopLossMode = True;

extern int 손절매 = 30;

extern bool TakeProfitMode = True;

외부 정수 TakeProfit = 60;

extern bool TrailingStopMode = True;

extern int TrailingStop = 30;

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESELL 4

int BarCount;

정수 현재;

bool TickCheck = 거짓;

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

//| 전문가 초기화 기능 |

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

정수 초기화() {

BarCount = 막대;

if (EachTickMode) 현재 = 0; 그렇지 않으면 현재 = 1;

리턴(0);

}

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

//| 전문가 초기화 해제 기능 |

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

정수 초기화() {

리턴(0);

}

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

//| 전문가 시작 기능 |

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

정수 시작() {

정수 주문 = SIGNAL_NONE;

int 합계, 티켓;

이중 StopLossLevel, TakeProfitLevel;

if (EachTickMode && Bars != BarCount) TickCheck = False;

총계 = OrdersTotal();

주문 = SIGNAL_NONE;

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

//| 변수 시작 |

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

이중 구매1_1 = iMA(NULL, 0, 89, 0, MODE_SMA, PRICE_CLOSE, 현재 + 0);

이중 구매1_2 = iClose(NULL, 0, 현재 + 0);

이중 구매2_1 = iMA(NULL, 0, 445, 0, MODE_EMA, PRICE_CLOSE, 현재 + 0);

이중 구매2_2 = iClose(NULL, 0, 현재 + 0);

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

//| 변수 끝 |

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

//위치 확인

bool IsTrade = 거짓;

for (int i = 0, i < 총계, i ++) {

주문 선택(i, SELECT_BY_POS, MODE_TRADES);

if(주문 유형() <= OP_SELL && 주문 기호() == 기호()) {

IsTrade = 사실;

if(주문 유형() == OP_BUY) {

//닫다

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

//| 시그널 비긴(Exit Buy) |

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

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

//| 시그널 종료(Exit Buy) |

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

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

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[신호 경고]", "[" + Symbol() + "] " + DoubleToStr(입찰가, 숫자) + " 매수 종료");

if (!EachTickMode) BarCount = 막대;

IsTrade = 거짓;

계속하다;

}

//후행 정지

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > 포인트 * TrailingStop) {

if(OrderStopLoss() < 입찰 - 포인트 * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), 입찰 - 포인트 * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

} 또 다른 {

//닫다

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

//| 시그널 비긴(엑시트 매도) |

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

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

//| 시그널 종료(엑시트 매도) |

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

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

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

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

if (!EachTickMode) BarCount = 막대;

IsTrade = 거짓;

계속하다;

}

//후행 정지

if(TrailingStopMode && TrailingStop > 0) {

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

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

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

if (!EachTickMode) BarCount = 막대;

계속하다;

}

}

}

}

}

}

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

//| 시그널 비긴(진입) |

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

if (구매1_1 < 구매1_2 && 구매2_1 < 구매2_2) 주문 = SIGNAL_BUY;

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

//| 신호 종료 |

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

//구입하다

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

if(!IsTrade) {

// 여유 여백 확인

if (AccountFreeMargin() < (1000 * 랏)) {

Print("돈이 없습니다. Free Margin = ", AccountFreeMargin());

리턴(0);

}

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

if (TakeProfitMode) 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);

}

}

//팔다

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

if(!IsTrade) {

// 여유 여백 확인

if (AccountFreeMargin() < (1000 * 랏)) {

Print("돈이 없습니다. Free Margin = ", AccountFreeMargin());

리턴(0);

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * 포인트; 그렇지 않으면 StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = 입찰가 - TakeProfit * 포인트; 그렇지 않으면 TakeProfitLevel = 0.0;

티켓 = OrderSend(Symbol(), OP_SELL, lot, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(티켓 > 0) {

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

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

if (SignalMail) SendMail("[신호 경고]", "[" + Symbol() + "] " + DoubleToStr(입찰가, 숫자) + " 공개 매도");

} 또 다른 {

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

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = 막대;

리턴(0);

}

}

if (!EachTickMode) BarCount = 막대;

리턴(0);

}

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

 

감사 및 기타 퀘스트

내 질문에 답변해 주셔서 감사합니다.

뉴디지털, 칼렌조, asmdev

그리고 모두에게 감사합니다

다음 질문입니다.

1.) 일어난 일과 일어난 일의 가치를 비교하는 방법

예를 들어, "n"이 지금이면 시간 변수, na = "a" 이전 시간입니다.

(na)와 RSIn(now)에서 발생했을 때의 RSI 값을 비교하는 방법.

또는 이전의 3개 막대와 마지막 막대의 MA50을 비교하는 방법은 무엇입니까?

2.) 포인트 1.)에 따르면 실제 사례는... 강세/약세 다이버전스를 만드는 방법은 무엇입니까?

조건: 정의된 기간 동안 가장 높은 가격과 가장 높은 RSI가 있습니다. 그리고 시간이 지나면... 우리는 새로운 최고가를 만나지만 새로운 RSI의 최고가를 만나지는 않습니다(RSI는 새로운 최고가를 만들지 못합니다).

우리 모두는 이 상황이 높은 실현 가능성의 매도 신호 이고 매수 신호가 반대라는 것을 알고 있으므로 제 EA가 이에 대해 알았으면 합니다.

다시 한번 감사합니다.