이 코드에서 무엇이 잘못되었는지 말해 줄 수 있습니까? 이것은 후행 중지와 유사하지만 테스트할 때 수정하면 오류 1이 발생합니다. 주문이 수정되지 않는 이유는 무엇입니까?
또한이 오류를 수정했을 때 (지금까지는 성공적이지 않음) 컴파일하는 동안 Expert Advisor의 기본 코드에서 인쇄 기능으로 오류를 반환하기 시작했으며 따옴표가 충분하지 않으며 모든 것이 올바르게 설정되었다고 씁니다. 이 오류를 수정하려면 인용문을 제거하고 다시 인용해야 합니다. .
부울 후행 정지()
{
if ((OrderMagicNumber()==11111)==true)
{
Print("매수 포지션을 유지하고 있습니다.");
동안(OrderCloseTime()==0)
{
if ((Bid-OrderStopLoss())>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0))
Print(" Stop Loss of order with number ", OrderTicket()," 및 매직 넘버 ",OrderMagicNumber(),", ",OrderStopLoss())로 성공적으로 변경됨
else Print("번호가 ",OrderTicket(),"이고 매직 번호가 ",OrderMagicNumber(),"인 주문의 손절매 수준을 이동하지 못했습니다. 오류 ",GetLastError());
}
}
if (OrderCloseTime()>0)
{
Print("주문 번호 ", OrderTicket()," 및 매직 번호 ",OrderMagicNumber(),", 가격으로 마감됨 ",OrderClosePrice(),", 손익 포함 ",OrderProfit());
반환(참);
}
}
또 다른
{
if ((OrderMagicNumber()==22222)==true)
{
Print("매도 포지션 유지");
동안(OrderCloseTime()==0)
{
if ((OrderStopLoss()-Ask)>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0))
Print("Stop Loss of order with number ",OrderTicket()," 및 매직 넘버 ",OrderMagicNumber(),", ",OrderStopLoss())로 성공적으로 변경되었습니다.
else Print("번호가 ",OrderTicket(),"이고 매직 번호가 ",OrderMagicNumber(),"인 주문의 손절매 수준을 이동하지 못했습니다. 오류 ",GetLastError());
}
}
if (OrderCloseTime()>0)
{
Print("주문 번호 ", OrderTicket()," 및 매직 번호 ",OrderMagicNumber(),", 가격으로 마감됨 ",OrderClosePrice(),", 손익 포함 ",OrderProfit());
이 코드에서 무엇이 잘못되었는지 말해 줄 수 있습니까? 이것은 후행 중지와 유사하지만 테스트할 때 수정하면 오류 1이 발생합니다. 주문이 수정되지 않는 이유는 무엇입니까?
또한이 오류를 수정했을 때 (지금까지는 성공적이지 않음) 컴파일하는 동안 Expert Advisor의 기본 코드에서 인쇄 기능으로 오류를 반환하기 시작했으며 따옴표가 충분하지 않으며 모든 것이 올바르게 설정되었다고 씁니다. 이 오류를 수정하려면 인용문을 제거하고 다시 인용해야 합니다. .
부울 trailingstop()
{
if ((OrderMagicNumber()==11111)==true)
{
Print("매수 포지션을 유지하고 있습니다.");
동안(OrderCloseTime()==0)
{
if ((Bid-OrderStopLoss())>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0))
Print("Stop Loss of order with number ",OrderTicket()," 및 매직 넘버 ",OrderMagicNumber(),", ",OrderStopLoss())로 성공적으로 변경되었습니다.
else Print("번호가 ",OrderTicket(),"이고 매직 번호가 ",OrderMagicNumber(),"인 주문의 손절매 수준을 이동하지 못했습니다. 오류 ",GetLastError());
}
}
if (OrderCloseTime()>0)
{
Print("주문 번호 ", OrderTicket()," 및 매직 번호 ",OrderMagicNumber(),", 가격으로 마감됨 ",OrderClosePrice(),", 손익 포함 ",OrderProfit());
반환(참);
}
}
또 다른
{
if ((OrderMagicNumber()==22222)==true)
{
Print("매도 포지션 유지");
동안(OrderCloseTime()==0)
{
if ((OrderStopLoss()-Ask)>(StopLevel*Point))
{
if (OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0))
Print("Stop Loss of order with number ",OrderTicket()," 및 매직 넘버 ",OrderMagicNumber(),", ",OrderStopLoss())로 성공적으로 변경되었습니다.
else Print("번호가 ",OrderTicket(),"이고 매직 번호가 ",OrderMagicNumber(),"인 주문의 손절매 수준을 이동하지 못했습니다. 오류 ",GetLastError());
}
}
if (OrderCloseTime()>0)
{
Print("주문 번호 ", OrderTicket()," 및 매직 번호 ",OrderMagicNumber(),", 가격으로 마감됨 ",OrderClosePrice(),", 손익 포함 ",OrderProfit());
반환(참);
}
}
그렇지 않으면 반환(거짓);
}
}
오류 1은 버그가 아닙니다. 이는 주문이 이미 수정되었음을 의미합니다. OrderModify() 전에 수정 매개변수를 삽입하십시오( 주문 손절매가 stoploss와 같지 않으면 (ND(Bid-StopLevel*Point) 또는ND(Ask+StopLevel*Point) ) , OrderModify() , 그렇지 않으면 -- 반환).
오류 1은 버그가 아닙니다. 이는 주문이 이미 수정되었음을 의미합니다. OrderModify() 전에 수정 매개변수를 삽입하십시오(주문 손절매가 stoploss와 같지 않으면 (ND(Bid-StopLevel*Point) 또는ND(Ask+StopLevel*Point) ) , OrderModify() , 그렇지 않으면 -- 반환).
따라서 이 수표는 더 높습니다: if ((Bid-OrderStopLoss())>(StopLevel*Point)), 또는 내가 당신을 잘못 이해했습니다
내가 날카로운 움직임으로 테스트 한 것에서 시각적으로도 중지 명령과 표현이 동일하지 않다는 것을 분명히 볼 수 있습니다.
Offhand, 내가 보는 것은 주문 마감 기능에서 티켓 OrderSelect(Ticket, SELECT_BY_TICKET) 로 주문을 선택해야 하고 Lts 변수에 없는 로트 수를 지정해야 한다는 것입니다. 왜냐하면 매번 다시 계산되지만 OrderLots를 사용하기 때문입니다. () 그리고 한 가지 더 - 각각 0번째 막대에서 계속 작업하면 한 막대의 기준이 사라질 수 있고 원하는 위치에서 주문이 열리지 않을 수 있습니다. 표시기 매개변수에서 막대 0에서 1, 1에서 2로 변경
답변 주셔서 감사합니다. 하지만 여기에서 기준이 다시 제대로 작동하지 않습니다. 화면에서 볼 수 있습니다(주문( )는 확률론의 모든 교차점에 대해 작동하지 않으며 여전히 0 bar에서 작업하고 싶습니다. , 그러나 이것을 위해서는 내가 이해하는 것처럼 추가 조건이 필요합니다. 조건: 현재 막대에서 주문을 연 후 막대가 닫힐 때까지 아무 것도 하지 않지만 구현 방법을 모르겠습니다(아마도 시계열 배열을 통해 ??? ) 말해 주세요.
따라서 이 수표는 더 높습니다: if ((Bid-OrderStopLoss())>(StopLevel*Point)), 또는 내가 당신을 잘못 이해했습니다
내가 날카로운 움직임으로 테스트 한 것에서 시각적으로도 중지 명령과 표현이 동일하지 않다는 것을 분명히 볼 수 있습니다.
문제는 다음과 같습니다. 이 함수에 OrderSelect()가 없기 때문에 주문 루프의 어딘가에서 사용되는 것 같습니다. 이 주기가 0차부터 마지막 1차까지 검색을 구성하는 경우 첫 번째 주문을 수정한 후 또는 예를 들어 이 틱에서 주문이 마감된 경우 다음에 OrderSelect() 함수가 호출될 때 주문 주문이 변경되고 기능은 이미 수정된 주문을 수정하도록 선택할 수 있습니다. 따라서 주문 의 손절매 값이 OrderModify() 함수에 전달한 값과 동일한지 확인해야 합니다.
if (ND(Bid-StopLevel* Point )==OrderStopLoss()) return ( true );
좋은 저녁이에요! 이해하는 방법을 알려주세요
현재 미결 주문 및 미결 포지션을 제외하고 현재 계정 및 현재 시장 환경에서 지정된 주문 유형에 필요한 증거금.
기존 함수를 근사할 수 있습니까?
많은 대신 이 기능을 사용하기 시작했습니다.
꽤 자주 OrderSend 오류 131 - 잘못된 볼륨을 씁니다. 초기 저장소가 10,000인 경우 초기 lot은 1입니다. 그러나 무언가가 작동하지 않습니다..
시간이 좀 견딜 수 없는 마지막 2개 구매 위치만 닫기 위해 닫기 구매 위치 블록 을 다시 만들지만 작동하지 않습니다 . 제안할 수 있습니까? ~처럼 블록을 변경?
많은 대신 이 기능을 사용하기 시작했습니다.
꽤 자주 OrderSend 오류 131 - 잘못된 볼륨을 씁니다. 초기 저장소가 10,000인 경우 초기 lot은 1입니다. 그러나 무언가가 작동하지 않습니다..
나는 이것을 사용하고 있다. 직접 조정하고 시도하십시오.(AccountBalance()를 AccountFreeMargin()으로 변경하고 변수 LotDigits를 입력하십시오) )
이 코드에서 무엇이 잘못되었는지 말해 줄 수 있습니까? 이것은 후행 중지와 유사하지만 테스트할 때 수정하면 오류 1이 발생합니다. 주문이 수정되지 않는 이유는 무엇입니까?
또한이 오류를 수정했을 때 (지금까지는 성공적이지 않음) 컴파일하는 동안 Expert Advisor의 기본 코드에서 인쇄 기능으로 오류를 반환하기 시작했으며 따옴표가 충분하지 않으며 모든 것이 올바르게 설정되었다고 씁니다. 이 오류를 수정하려면 인용문을 제거하고 다시 인용해야 합니다. .
부울 후행 정지()이 코드에서 무엇이 잘못되었는지 말해 줄 수 있습니까? 이것은 후행 중지와 유사하지만 테스트할 때 수정하면 오류 1이 발생합니다. 주문이 수정되지 않는 이유는 무엇입니까?
또한이 오류를 수정했을 때 (지금까지는 성공적이지 않음) 컴파일하는 동안 Expert Advisor의 기본 코드에서 인쇄 기능으로 오류를 반환하기 시작했으며 따옴표가 충분하지 않으며 모든 것이 올바르게 설정되었다고 씁니다. 이 오류를 수정하려면 인용문을 제거하고 다시 인용해야 합니다. .
부울 trailingstop()오류 1은 버그가 아닙니다. 이는 주문이 이미 수정되었음을 의미합니다. OrderModify() 전에 수정 매개변수를 삽입하십시오( 주문 손절매가 stoploss와 같지 않으면 (ND(Bid-StopLevel*Point) 또는 ND(Ask+StopLevel*Point) ) , OrderModify() , 그렇지 않으면 -- 반환).
오류 1은 버그가 아닙니다. 이는 주문이 이미 수정되었음을 의미합니다. OrderModify() 전에 수정 매개변수를 삽입하십시오(주문 손절매가 stoploss와 같지 않으면 (ND(Bid-StopLevel*Point) 또는 ND(Ask+StopLevel*Point) ) , OrderModify() , 그렇지 않으면 -- 반환).
따라서 이 수표는 더 높습니다: if ((Bid-OrderStopLoss())>(StopLevel*Point)), 또는 내가 당신을 잘못 이해했습니다
내가 날카로운 움직임으로 테스트 한 것에서 시각적으로도 중지 명령과 표현이 동일하지 않다는 것을 분명히 볼 수 있습니다.
Offhand, 내가 보는 것은 주문 마감 기능에서 티켓 OrderSelect(Ticket, SELECT_BY_TICKET) 로 주문을 선택해야 하고 Lts 변수에 없는 로트 수를 지정해야 한다는 것입니다. 왜냐하면 매번 다시 계산되지만 OrderLots를 사용하기 때문입니다. () 그리고 한 가지 더 - 각각 0번째 막대에서 계속 작업하면 한 막대의 기준이 사라질 수 있고 원하는 위치에서 주문이 열리지 않을 수 있습니다. 표시기 매개변수에서 막대 0에서 1, 1에서 2로 변경
답변 주셔서 감사합니다. 하지만 여기에서 기준이 다시 제대로 작동하지 않습니다. 화면에서 볼 수 있습니다(주문( )는 확률론의 모든 교차점에 대해 작동하지 않으며 여전히 0 bar에서 작업하고 싶습니다. , 그러나 이것을 위해서는 내가 이해하는 것처럼 추가 조건이 필요합니다. 조건: 현재 막대에서 주문을 연 후 막대가 닫힐 때까지 아무 것도 하지 않지만 구현 방법을 모르겠습니다(아마도 시계열 배열을 통해 ??? ) 말해 주세요.
따라서 이 수표는 더 높습니다: if ((Bid-OrderStopLoss())>(StopLevel*Point)), 또는 내가 당신을 잘못 이해했습니다
내가 날카로운 움직임으로 테스트 한 것에서 시각적으로도 중지 명령과 표현이 동일하지 않다는 것을 분명히 볼 수 있습니다.
문제는 다음과 같습니다. 이 함수에 OrderSelect()가 없기 때문에 주문 루프의 어딘가에서 사용되는 것 같습니다. 이 주기가 0차부터 마지막 1차까지 검색을 구성하는 경우 첫 번째 주문을 수정한 후 또는 예를 들어 이 틱에서 주문이 마감된 경우 다음에 OrderSelect() 함수가 호출될 때 주문 주문이 변경되고 기능은 이미 수정된 주문을 수정하도록 선택할 수 있습니다. 따라서 주문 의 손절매 값이 OrderModify() 함수에 전달한 값과 동일한지 확인해야 합니다.