(비정규화될 수 있는) 트리거 가격 이상 으로 열려고 하는 경우 Bid > trigger를 사용합니다. 반올림으로 인해 가격에서 트리거 되는 경우 정말 신경 쓰지 않습니다.
AT 또는 그 주변 (아마도 비정규화된) 트리거 가격을 열려고 하는 경우 간격을 테스트합니다. Bid > trigger && Bid < trigger+3*pips2dbl. 시장은 한 틱으로 전체 핍을 쉽게 이동할 수 있으므로 Bid == trigger는 항상 잘못되고 MathAbs(bid-trigger) < Point/2는 정확하지만 대부분 작동하지 않을 것입니다.
SL을 옮기려고 하는 것과 같이 같음이 중요하지만 시장에 너무 가깝다면( 정지 수준 ) Bid - newSL > StopLelvel - Point/2를 사용합니다.
(비정규화될 수 있는) 트리거 가격 이상 으로 열려고 하는 경우 Bid > trigger를 사용합니다. 반올림으로 인해 가격에서 트리거 되는 경우 정말 신경 쓰지 않습니다.
AT 또는 그 주변 (아마도 비정규화된) 트리거 가격을 열려고 하는 경우 간격을 테스트합니다. Bid > trigger && Bid < trigger+3*pips2dbl. 시장은 한 틱으로 전체 핍을 쉽게 이동할 수 있으므로 Bid == trigger는 항상 잘못되고 MathAbs(bid-trigger) < Point/2는 정확하지만 대부분 작동하지 않을 것입니다.
SL을 이동하려는 경우와 같이 같음이 중요하지만 시장에 너무 가깝고(정지 수준) Bid - newSL > StopLelvel - Point/2를 사용합니다.
감사해요. 이제 그것이 내가 달인 실이라고 부르는 것입니다.
사실 당신이 언급한 내용은 내 애플리케이션에 매우 가깝습니다. 새로운 TakeProfit이 이미 설정되어 전송된 원래 TakeProfit과 다른지(브로커 또는 MQL4 표준에 따라) 확인 중입니다. OrderModify가 호출되기 전에 두 개의 지표 값과 두 개의 TakeProfit 값을 비교하고 있습니다.
if ( Volume [ 0 ]> 1 ) return ;
for ( int b= OrdersTotal ()- 1 ;b>= 0 ; b--)
{
if (atr2kTP == atr2kTPAdjust|| btphold==btp)) return ; //-----------This is where I am comparing them, and where the function would go.if ( OrderSelect (b, SELECT_BY_POS , MODE_TRADES ))
if ( OrderMagicNumber ()==MAGICMA)
if ( OrderSymbol ()== Symbol ())
if ( OrderType ()== OP_BUY )
atr2kTPAdjust=atr2kTP;
OrderModify ( OrderTicket (), OrderOpenPrice (), OrderStopLoss (),btp, 0 ,CLR_NONE);
}
for ( int s= OrdersTotal ()- 1 ;s>= 0 ; s--)
{
if (atr2kTP == atr2kTPAdjust|| stphold==stp) return ;
if ( OrderSelect (s, SELECT_BY_POS , MODE_TRADES ))
if ( OrderMagicNumber ()==MAGICMA)
if ( OrderSymbol ()== Symbol ())
if ( OrderType ()== OP_SELL )
atr2kTPAdjust=atr2kTP;
OrderModify ( OrderTicket (), OrderOpenPrice (), OrderStopLoss (),stp, 0 ,CLR_NONE);
}
}
그것은 내가 벌레의 이중 캔이라고 부르는 것입니다.... (말장난 의도;)
제안된 몇 가지 사용자 정의 기능 중 어느 것도 합의에 도달하지 못한 것 같습니다. 이 시점(말장난 없음)을 공유하고 싶은 사람이 있습니까? 일상적인 CompareDouble 기능으로 사용하는 기능은 무엇입니까?
분명히 우리는 신뢰할 수 있는 시스템을 원한다면 일부 사용자 정의 CompareDouble 함수를 사용해야 합니다.
EXACT 값이 중요한 경우가 아니면 대부분 문제를 무시할 수 있습니다.
(비정규화될 수 있는) 트리거 가격 이상 으로 열려고 하는 경우 Bid > trigger를 사용합니다. 반올림으로 인해 가격에서 트리거 되는 경우 정말 신경 쓰지 않습니다.
AT 또는 그 주변 (아마도 비정규화된) 트리거 가격을 열려고 하는 경우 간격을 테스트합니다. Bid > trigger && Bid < trigger+3*pips2dbl. 시장은 한 틱으로 전체 핍을 쉽게 이동할 수 있으므로 Bid == trigger는 항상 잘못되고 MathAbs(bid-trigger) < Point/2는 정확하지만 대부분 작동하지 않을 것입니다.
SL을 옮기려고 하는 것과 같이 같음이 중요하지만 시장에 너무 가깝다면( 정지 수준 ) Bid - newSL > StopLelvel - Point/2를 사용합니다.
EXACT 값이 중요한 경우가 아니면 대부분 문제를 무시할 수 있습니다.
(비정규화될 수 있는) 트리거 가격 이상 으로 열려고 하는 경우 Bid > trigger를 사용합니다. 반올림으로 인해 가격에서 트리거 되는 경우 정말 신경 쓰지 않습니다.
AT 또는 그 주변 (아마도 비정규화된) 트리거 가격을 열려고 하는 경우 간격을 테스트합니다. Bid > trigger && Bid < trigger+3*pips2dbl. 시장은 한 틱으로 전체 핍을 쉽게 이동할 수 있으므로 Bid == trigger는 항상 잘못되고 MathAbs(bid-trigger) < Point/2는 정확하지만 대부분 작동하지 않을 것입니다.
SL을 이동하려는 경우와 같이 같음이 중요하지만 시장에 너무 가깝고(정지 수준) Bid - newSL > StopLelvel - Point/2를 사용합니다.
감사해요. 이제 그것이 내가 달인 실이라고 부르는 것입니다.
사실 당신이 언급한 내용은 내 애플리케이션에 매우 가깝습니다. 새로운 TakeProfit이 이미 설정되어 전송된 원래 TakeProfit과 다른지(브로커 또는 MQL4 표준에 따라) 확인 중입니다. OrderModify가 호출되기 전에 두 개의 지표 값과 두 개의 TakeProfit 값을 비교하고 있습니다.
이것은 Double order 값을 비교하기 위해 Point/2 필터를 사용한 최종 OrderMod 코드였습니다. 오류 없이 작업하고 매번 주문을 수정했습니다. 감사해요!
newBar는 잘 작동합니다.
MathAbs는 바위, 방정식의 왼쪽에 있는 음수만 변환한다고 생각했지만, 그 차이도 양수 값으로 변환할 줄은 몰랐습니다.
Point/2 정밀도는 신호 목적에 중요하지 않습니다. 나는 미약한 코딩을 피하기 위해 반올림 오류를 피하고 싶었을 뿐입니다.
나는 반올림 오류뿐만 아니라 주파수 오류를 스톰핑하는 것을 선호합니다. 그래서 가장 정확한 계산 코드 가 아닌 가장 오류가 없는 안정적인 계산을 사용하고 싶습니다.
따라서 TakeProfit MathAbs(stphold - stp) 비교를 2*pips보다 훨씬 더 높임으로써 반올림 오류와 주파수 오류를 제거할 수 있는 가장 큰 기회를 가져야 합니까?
고맙습니다.
newBar는 잘 작동합니다.
이전에 IsNewCandle에서 문제를 발견했기 때문에 Volume 트리거로 전환했습니다. 볼륨 틱 처리가 느리거나 누락될 수 있는 경우 촛불도 마찬가지일 수 있습니다. 그래서 둘 다 잘못된 생각이었다..
newBar가 제대로 작동하기 때문에 이제 아래 코드를 사용하여 IsNewCandle 실패 발생을 식별하려고 했습니다.
IsNewCandle() 함수 호출은 newBar 코드 라인 위의 start() 내부에 있습니다. (가장 낮은 코드 사진 판매) 이 인쇄 테스트는 작동하지 않았고 대신 모든 새 막대에 인쇄되었습니다.
제 생각에는 새로운 바 체크를 함수 에 넣는 것은 나쁜 생각입니다. 함수는 코드를 재사용 가능하게 만드는 데 사용됩니다. . . 새 막대의 동일한 첫 번째 눈금 동안 IsNewCandle()을 두 번 호출하고 어떤 응답을 얻었는지 확인하십시오. . .
그런데 . . . 이것은 이 스레드의 주제가 아닙니다. 토론을 계속하려면 새 스레드로 이동하십시오. 나중에 정리하겠습니다. .
....가격은 포인트의 배수에 의해서만 변경될 수 있기 때문에 포인트/2는 그냥 ....
가격 을 비교한다면 괜찮습니다. 그러나 두 배를 비교하는 경우(예: 평균 가격) Point/2는 수행하지 않습니다.
가격 을 비교한다면 괜찮습니다. 그러나 두 배를 비교하는 경우(예: 평균 가격) Point/2는 수행하지 않습니다.
이 주제의 제목을 눈치채셨나요?
;)
가격 을 비교한다면 괜찮습니다. 그러나 두 배를 비교하는 경우(예: 평균 가격) Point/2는 수행하지 않습니다.