Maji: 주문이 현재 입찰/매도에 너무 가깝게 배치되고 있습니다. 주문은 현재 가격에서 일정 거리 떨어져 있어야 합니다. stop_level 매개변수와 함께 Marketinfo 기능을 사용하여 해당 정보를 추출하고 주문이 요청/입찰에서 멀리 떨어져 있는지 확인하십시오. 도움이 되었기를 바랍니다.
음....
미안하지만 거기서 날 잃었어..
'현재' 수준에서 주문할 수 없나요? 지금까지 내가 한 일의 대부분은 기간이 끝날 때 주문을 실행하는 것이었습니다. 이것이 가능합니까?
stop_level 매개변수와 marketinfo 함수가 무엇인지 먼저 배워야 합니다.
방향을 주셔서 감사합니다
여기서 가치가 있는 것은 무엇이든 내가 트렌드 밴드 표시기에 수행한 업데이트입니다. 꽤 재미있었습니다.
Ask and upLevel are in "price" (like 115.56 or 1.2678) while longrange is in pips (like 4,5,6) and u cannot mixed them. U have to normalize the pips to "price" and this is done by muliplying the pips with Points
... 문제는 내가 그 게시물을 만든 이후로 변경했다는 것입니다. ..대역폭을 넓히거나 좁게 하는 매개변수로 인디케이터를 수정하고, 선에 근접한 경계를 이루는 EA 부분을 빼냈습니다. 나는 무역 밴드 자체를 좁거나 넓게 만들 수 있다면 그렇게 복잡하지 않고 동일한 기능 을 제공하고 나를 정신적으로 추적하기가 더 쉬울 것이라고 생각했습니다 .... 그래서 ...
주문이 현재 입찰/매도에 너무 가깝게 배치되고 있습니다. 주문은 현재 가격에서 일정 거리 떨어져 있어야 합니다. stop_level 매개변수와 함께 Marketinfo 기능 을 사용하여 해당 정보를 추출하고 주문이 요청/입찰에서 멀리 떨어져 있는지 확인하십시오.
도움이 되었기를 바랍니다.
주문이 현재 입찰/매도에 너무 가깝게 배치되고 있습니다. 주문은 현재 가격에서 일정 거리 떨어져 있어야 합니다. stop_level 매개변수와 함께 Marketinfo 기능을 사용하여 해당 정보를 추출하고 주문이 요청/입찰에서 멀리 떨어져 있는지 확인하십시오. 도움이 되었기를 바랍니다.
음....
미안하지만 거기서 날 잃었어..
'현재' 수준에서 주문할 수 없나요? 지금까지 내가 한 일의 대부분은 기간이 끝날 때 주문을 실행하는 것이었습니다. 이것이 가능합니까?
stop_level 매개변수와 marketinfo 함수가 무엇인지 먼저 배워야 합니다.
방향을 주셔서 감사합니다
여기서 가치가 있는 것은 무엇이든 내가 트렌드 밴드 표시기에 수행한 업데이트입니다. 꽤 재미있었습니다.
좋아 여기있다 ...
MarketInfo() 함수와 함께 사용되는 시장 정보 식별자입니다.
다음 값 중 하나일 수 있습니다.
MODE_STOPLEVEL 14 정지 레벨(포인트).
그래서 나는 그것이 ...
시장 정보(14)
어디에 넣어요?
아니면 그게...
시장 정보(NULL,MODE_STOPLEVEL);
또는...
이중 입찰 =MarketInfo(NULL,MODE_BID);
이중 요청 =MarketInfo(NULL,MODE_ASK);
더블 포인트 =MarketInfo(NULL,MODE_POINT);
나는 이것을 사용하는 방법을 정말로 이해하지 못하는 것 같습니다 ... 저에게 예를 보여 주시겠습니까?
여기 내가 이 경우에 작업하고 있는 것이 있습니다. 이 EA가 이전에는 주문하는 데 문제가 없었고 지금은 문제가 없는 이유가 궁금합니다. 필터를 추가하기 전에 작동했습니까???
double upLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 0, 0);
double LowLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 2, 0);
// ENTRY
if(total < 2 || isNewSumbol(Symbol())) //I have modified the if condition too: it was total<1 (orBanAway aka cucurucu)
{
double HedgeLots = (HedgePercent/100)*Lots; //calculates the Lots for the hedged position
if(isCrossed == 1 && Ask < upLevel)
{
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
else
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
//###################################################################### the added code starts here
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,HedgeLots,Bid,3,0,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
//###################################################################### ends here
return(0);
}
if(isCrossed == 2 && Ask > LowLevel)
{
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
//###################################################################### the added code starts here
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,HedgeLots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
else
ticket=OrderSend(Symbol(),OP_BUY,HedgeLots,Ask,3,0,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
//###################################################################### ends here
return(0);
}
return(0);
}
return(0);
}
return(0);
}
}
//+------------------------------------------------------------------+MarketInfo(NULL,MODE_STOPLEVEL)를 사용하여 정지 주문 이 현재 가격에서 얼마나 떨어져 있어야 하는지 결정해야 합니다. 핍으로 값을 반환한다는 것을 기억하십시오.
그러나 다음과 같이 사용하여 포인트로 변환할 수 있습니다.
이중 MinDist = NormalizeDouble(MarketInfo(NULL,MODE_STOPLEVEL)*포인트, 자릿수);
이제 스탑 오더가 현재 시장 가격에서 그렇게 멀리 떨어져 있는지 확인하십시오. 그건 그렇고, NormalizeDouble 및 Digits를 사용하여 pip 값을 소수점 이하 적절한 자리(4 또는 2)로 변환합니다. 그것은 MT4에서 아주 좋은 것입니다.
도움이 되었기를 바랍니다.
마지
MarketInfo(NULL,MODE_STOPLEVEL)를 사용하여 정지 주문이 현재 가격에서 얼마나 떨어져 있어야 하는지 결정해야 합니다. 핍으로 값을 반환한다는 것을 기억하십시오.
그러나 다음과 같이 사용하여 포인트로 변환할 수 있습니다.
이중 MinDist = NormalizeDouble(MarketInfo(NULL,MODE_STOPLEVEL)*포인트, 자릿수);
이제 스탑 오더가 현재 시장 가격에서 그렇게 멀리 떨어져 있는지 확인하십시오. 그건 그렇고, NormalizeDouble 및 Digits를 사용하여 pip 값을 소수점 이하 적절한 자리(4 또는 2)로 변환합니다. 그것은 MT4에서 아주 좋은 것입니다.
도움이 되었기를 바랍니다.
마지내가 이해할 수 없는 것은 지표를 필터로 추가하는 것이 주문을 하거나 중지하는 방식을 엉망으로 만든 이유입니다. 내가 말할 수있는 한 그 어떤 것도 변경하지 않았으므로 라인 위의 거래를 허용하지 않는 것이 정지 주문 을 배치하는 방식을 변경하는 이유는 무엇입니까?
괜찮으시다면 현재 코드를 이메일로 보내주세요. 주말에 한번 보려고 합니다. 고칠 것이라고 장담할 수는 없지만 정직하게 살펴보고 노력하겠습니다.
여기 당신이 먼저 봐야 할 문제가 있습니다
Ask and upLevel are in "price" (like 115.56 or 1.2678) while longrange is in pips (like 4,5,6) and u cannot mixed them. U have to normalize the pips to "price" and this is done by muliplying the pips with Points
the corrected code is like that
[PHP]if(isCrossed == 1 && Ask < upLevel-longrange*Point)일단 쉬운 솔루션입니다 ...
오직...
... 문제는 내가 그 게시물을 만든 이후로 변경했다는 것입니다.
..대역폭을 넓히거나 좁게 하는 매개변수로 인디케이터를 수정하고, 선에 근접한 경계를 이루는 EA 부분을 빼냈습니다. 나는 무역 밴드 자체를 좁거나 넓게 만들 수 있다면 그렇게 복잡하지 않고 동일한 기능 을 제공하고 나를 정신적으로 추적하기가 더 쉬울 것이라고 생각했습니다 .... 그래서 ...
현재 이렇습니다...
double upLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 0, 0);
double LowLevel = iCustom(NULL,TF, "Trend Bands v3", back, bandwidth, 2, 0);
// ENTRY
if(total < 2 || isNewSumbol(Symbol())) //I have modified the if condition too: it was total<1 (orBanAway aka cucurucu)
{
double HedgeLots = (HedgePercent/100)*Lots; //calculates the Lots for the hedged position
if(isCrossed == 1 && Ask < upLevel)
{
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
elseAsk와 Uplevel 둘 다 가격이 비슷하지 않습니까? 이것은 여전히 오류를 생성하는 코드입니다. 더 진행해야 합니다..
지금까지 나는 어떤 문제도 보지 못했다(코드 지향)
그러나 논리적으로 이것을 보라.
if(isCrossed == 1 && 묻기 < upLevel)
당신은 그들이 가까이 있는지 확인 하지 않고 가격이 라인보다 낮은 지 확인합니다.
있는줄 알았어!!!
나는 당신이 얻고자 하는 것을 정확히 테스트했고, 내 이전 포스트는 잘못된 EA를 넣었습니다.
이 EA는 최대 4개의 TF를 확인 하여 모두 동시에 우위를 점하고 있는지 확인할 수 있습니다. 원하는 경우 하나만 선택할 수 있습니다.
지표에서 논리를 가져오는 방법과 여러 TF를 함께 결합하는 방법을 예로 사용할 수 있습니다.
문안 인사
엘리
있는줄 알았어!!!
나는 당신이 얻고자 하는 것을 정확히 테스트했고, 내 이전 포스트는 잘못된 EA를 넣었습니다.
이 EA는 최대 4개의 TF를 확인하여 모두 동시에 우위를 점하고 있는지 확인할 수 있습니다. 원하는 경우 하나만 선택할 수 있습니다.
지표에서 논리를 가져오는 방법과 여러 TF를 함께 결합하는 방법을 예로 사용할 수 있습니다.
문안 인사
엘리이것은 흥미롭다
나는 아직 멀티 TF 지표를 제대로 공개하지 않았지만 그만한 가치가 있다고 생각합니다.