이와 같은 시퀀스를 상상해 보십시오(TrendBuffer > LoBuffer인 경우 1, TrendBuffer < LoBuffer인 경우 -1).
11111111-1-1-1-1-1-1-1-111111111
화살표는 1이 -1이 되거나 -1이 1이 될 때만 그려야 합니다("상태"가 변경될 때). 그렇기 때문에 이를 확인 하는 줄이 있습니다(이 줄 : if (state[CB] !=state[CB+1]) ). 따라서 상태가 변경되면 화살표가 그려집니다. 그렇지 않으면 화살표를 전혀 그릴 필요가 없습니다.
나는 lwma를 사용할 수 있으므로 선체에서 기간을 30으로 하려면 어떤 mv를 차트에 넣어야 할까요 2 ma 또는 기간과 함께 1개를 넣어야 합니다 나는 수학을 잘하지 못하며 노력해 주셔서 대단히 감사합니다
조록자드
이동 평균 만 사용할 수는 없습니다. 이전 게시물의 공식을 사용해야 합니다.
새로운 메타 트레이더 4에 대한 설명서가 아직 있습니까?
아니면 그들이 만들까요?
새로운 메타 트레이더 4에 대한 설명서가 아직 있습니까? 아니면 그들이 만들까요?
내가 아는 한에서는 아니다. (개발의 어느 시점에서) 일부가 있을 것이라고 생각합니다.
첨부된 Mladen은 메인 차트에 교차 신호를 표시하기 위해 수정한 지표입니다.
이 코드는 새 버전에서 가져온 것입니다.
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}이 코드가 신호를 삽입하는 방법을 쉽게 설명할 수 있습니까?
고맙습니다.
첨부된 Mladen은 메인 차트에 교차 신호를 표시하기 위해 수정한 지표입니다.
이 코드는 새 버전에서 가져온 것입니다.
arrDn[CB] = EMPTY_VALUE;
state[CB] = state[CB+1];
if (TrendBuffer[CB]>LoBuffer[CB]) state[CB] = 1;
if (TrendBuffer[CB]<LoBuffer[CB]) state[CB] = -1;
if (state[CB]!=state[CB+1])
{
if (state[CB]== 1) arrUp[CB] = Low[CB] -iATR(NULL,0,10,CB)/2.0;
if (state[CB]==-1) arrDn[CB] = High[CB]+iATR(NULL,0,10,CB)/2.0;
}이 코드가 신호를 삽입하는 방법을 쉽게 설명할 수 있습니까?
고맙습니다.남자 이름
TrendBuffer와 LoBuffer의 두 버퍼에서 값의 교차를 찾고 있습니다. 두 가지의 현재 상태를 표시합니다. TrendBuffer > LoBuffer인 경우 상태를 1로 설정하고 TrendBuffer < LoBuffer인 경우 상태를 -1로 설정합니다.
이제 현재 막대의 상태가 이전 막대의 상태와 다른 경우 십자가가 있음을 의미합니다. 그런 다음 차트에 그리고 화살표를 그립니다.
또 귀찮은 선생님도 이 지표를 MT4 지표로 환산해서 넣어주세요 감사합니다!
colorbars_hlc.mq5
남자 이름
TrendBuffer와 LoBuffer의 두 버퍼에서 값의 교차를 찾고 있습니다. 두 가지의 현재 상태를 표시합니다. TrendBuffer > LoBuffer인 경우 상태를 1로 설정하고 TrendBuffer < LoBuffer인 경우 상태를 -1로 설정합니다.
이제 현재 막대의 상태가 이전 막대의 상태와 다른 경우 십자가가 있음을 의미합니다. 그런 다음 차트에 그리고 화살표를 그립니다.좋아, TrendBuffer와 LoBuffer에 대해 설명합니다.
하지만 arrUp과 arrDn은 어떻게 작동합니까?
신호가 모든 양초가 아니라 특정 양초에 나타나는 이유는 무엇입니까?
다시 한번 감사합니다.
좋아, TrendBuffer와 LoBuffer에 대해 설명합니다.
하지만 arrUp과 arrDn은 어떻게 작동합니까?
신호가 모든 양초가 아니라 특정 양초에 나타나는 이유는 무엇입니까?
다시 한번 감사합니다.남자 이름
이와 같은 시퀀스를 상상해 보십시오(TrendBuffer > LoBuffer인 경우 1, TrendBuffer < LoBuffer인 경우 -1).
11111111-1-1-1-1-1-1-1-111111111
화살표는 1이 -1이 되거나 -1이 1이 될 때만 그려야 합니다("상태"가 변경될 때). 그렇기 때문에 이를 확인 하는 줄이 있습니다(이 줄 : if ( state [ CB ] != state [ CB + 1 ]) ). 따라서 상태가 변경되면 화살표가 그려집니다. 그렇지 않으면 화살표를 전혀 그릴 필요가 없습니다.
헤이 mladen,
연말에 시간이 있기를 바랍니다.
아래 코드는 나에게 마지막으로 질문한 내용과 관련이 있습니다. 플러스에서 2핍을 목표로 한 후 한 주문에 0.8핍을 추적합니다.
그러나 개별적으로 모든 주문과 추적을 확인 하도록 변경할 수 있습니까?
매우 감사합니다! 당신이 여기서 하는 훌륭한 일.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}헤이 mladen,
연말에 시간이 있기를 바랍니다.
아래 코드는 저에게 마지막으로 질문한 내용과 관련이 있습니다. 플러스에서 2핍을 목표로 한 후 한 주문에 0.8핍을 추적합니다.
그러나 개별적으로 모든 주문과 추적을 확인하도록 변경할 수 있습니까?
매우 감사합니다! 당신은 여기에서 하는 훌륭한 일.
int start()
{
//----
if (OrdersTotal() == 0) {
isStopLoss = false;
}
for(int i=0; i<=OrdersTotal(); i++) {
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
continue;
}
if(OrdersTotal() == 0) {
continue;
}
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(isStopLoss == true) {
if(OrderType() == OP_BUY) {
if(iClose(Symbol(), 0, 0) >= (OrderOpenPrice()+inProfitStopLoss*Point)) { // Zieht bei 2.0 Pips nach! - 200 = 2.0 Pips
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) >= (lastStopLoss+trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss+trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+inProfitStopLoss*Point,0,0,0);
if(OrderStopLoss() >= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
} else if(OrderType() == OP_SELL) {
if(iClose(Symbol(), 0, 0) <= (OrderOpenPrice()-inProfitStopLoss*Point)) {
if(isTrailing == true) {
if(iClose(Symbol(), 0, 0) <= (lastStopLoss-trailingStop)) {
OrderModify(OrderTicket(), OrderOpenPrice(), (lastStopLoss-trailingStop), 0,0,0);
lastStopLoss = OrderStopLoss();
//isTrailing = true;
continue;
}
}
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-inProfitStopLoss*Point,0,0,0); // 200 ursprünglich
if(OrderStopLoss() <= OrderOpenPrice()) {
isTrailing = true;
}
lastStopLoss = OrderStopLoss();
}
}
lastStopLoss = OrderStopLoss();
continue;
}
if(OrderType() == OP_BUY) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-initialStopLoss*Point,0,0,0);
} else if(OrderType() == OP_SELL) {
isStopLoss = true;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+initialStopLoss*Point,0,0,0);
}
lastStopLoss = OrderStopLoss();
}
//----
return(0);
}아로간즈마신
이 게시물( https://www.mql5.com/en/forum/181334 )에서 EA에서 후행 정류장이 관리되는 방식을 확인하십시오. 후행 정지 손실을 처리하는 데 필요한 모든 요소(오류 검사 포함)가 있으므로 도움이 될 수 있다고 생각합니다.