a=true 및 b=true 조건에서 두 개의 보류 중인 주문(BuyStop 및 SellStop)을 여는 코드를 작성했으며 잠시 후 어드바이저는 두 번째 신호가 나타날 때까지 두 주문을 모두 닫지만 때로는 어드바이저가 2개의 보류 중인 주문을 같은 방향. 왜 이런 일이 일어나고 이 "버그"를 피하는 방법은 무엇입니까?
if (a=true && b=true) { 정수 주문 수 = 주문 총계(); if (OrderCount>1) return(0); ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, 슬리피지, PriceOpen_Sell,0,0,Green); 수면(1000);
호출된 함수에 전달된 매개변수를 보세요. 아무것도 명확하지 않을 때, 우리는 전 세계를 다룰 것입니다, 선생님...
추신. 보류 주문을 할 때 라인
if (price < Bid)
완전히 적절하지 않습니다. MarketInfo(Symbol(), MODE_STOPLEVEL)에 지정된 최소 허용 거리 준수 여부를 확인해야 합니다. 가장 먼저 눈에 들어온 것은.
일반적으로 개봉할 때가 아니라 주문을 수정할 때 이러한 수표를 본 적이 있습니다. 결국 바이스탑에 레이오프 가격을 정할 때 Ask보다 가격이 더 낮으면 그건 실수일 테니까요. 저는 이미 겪었습니다. 그리고 만약 10pp. 정지하면 정지 수준 값보다 분명히 높습니다. 저는 틱으로 거래하지 않습니다 :)
안녕하세요.
a=true 및 b=true 조건에서 두 개의 보류 중인 주문(BuyStop 및 SellStop)을 여는 코드를 작성했으며 잠시 후 어드바이저는 두 번째 신호가 나타날 때까지 두 주문을 모두 닫지만 때로는 어드바이저가 2개의 보류 중인 주문을 같은 방향. 왜 이런 일이 일어나고 이 "버그"를 피하는 방법은 무엇입니까?
if (a=true && b=true)
{
정수 주문 수 = 주문 총계();
if (OrderCount>1) return(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, 슬리피지, PriceOpen_Sell,0,0,Green);
수면(1000);
ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, 슬리피지, PriceOpen_Buy,0,0,Green);
절전(1000*59*시간 프레임);
(int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 중단;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(), 입찰, 미끄러짐);
}
리턴(0);
}
말해 주세요.
미리 감사드립니다
여보세요,
설정에서 1:1의 고정 스케일 차트가 가능하다고 전문가에게 쓰는 것이 가능합니까?
가능하다면 방법을 알려주세요.
미리 감사드립니다.
이 라이브러리 는 할 수 있습니다.
섹션 "3.3. 차트 속성 설정을 위한 함수" 함수 ServiceSetScaleFix1To1 () .
라이브러리는 러시아어 및 영어 지역화에서만 작동합니다. 아마도 당신도 그럴 것입니다.
다음은 주문 개시 기능입니다.
다음은 매개변수의 출력입니다.
여기에서 TP와 SL의 가격이 각각 매도호가와 매수호가보다 낮고 높다는 것을 알 수 있습니다. 모든 것은 맞다. 그러나 어떤 이유로 잘못된 정지로 인해 수정 오류 가 발생합니다. 어때요?
다음은 주문 개시 기능입니다.
다음은 매개변수의 출력입니다.
여기에서 TP와 SL의 가격이 각각 매도호가와 매수호가보다 낮고 높다는 것을 알 수 있습니다. 모든 것이 정확합니다. 그런데 어떤 이유로 잘못된 정지로 인해 수정 오류가 발생합니다. 어때요?
욕설이 무엇을 위한 것인지 읽어 보셨습니까?
호출된 함수에 전달된 매개변수를 보세요. 아무것도 명확하지 않은 경우에는 전 세계를 처리해야 합니다.
추신. 대기 주문 을 할 때 라인
if (price < Bid)
완전히 적절하지 않습니다. MarketInfo(Symbol(), MODE_STOPLEVEL)에 지정된 최소 허용 거리 준수 여부를 확인해야 합니다. 가장 먼저 눈에 들어온 것은.
두 번째 - 주문한 가격을 인쇄합니다. 스톱 앤 테이크는 Ask와 Bid가 아니라 주문 가격을 기준으로 해야 합니다.
이 라이브러리 는 할 수 있습니다.
섹션 "3.3. 차트 속성 설정을 위한 함수" 함수 ServiceSetScaleFix1To1 () .
라이브러리는 러시아어 및 영어 지역화에서만 작동합니다. 아마도 당신도 그럴 것입니다.
욕설이 무엇을 위한 것인지 읽어 보셨습니까?
호출된 함수에 전달된 매개변수를 보세요. 아무것도 명확하지 않은 경우에는 전 세계를 처리해야 합니다.
물론 나는 읽었고 그래서 흥미로워졌다. 모든 입력 매개변수를 인쇄했습니다.
다음은 일어난 일입니다.
이것은 로그에 있는 내용입니다:
일부 주문은 수정되고 일부는 수정되지 않습니다. 맨 처음의 ND(TP) , ND(SL) 값은 일반적으로 어쨌든 반환되었습니다. 왜요?
그런데 정규화 기능은 다음과 같습니다.
욕설이 무엇을 위한 것인지 읽어 보셨습니까?
호출된 함수에 전달된 매개변수를 보세요. 아무것도 명확하지 않을 때, 우리는 전 세계를 다룰 것입니다, 선생님...
추신. 보류 주문을 할 때 라인
if (price < Bid)
완전히 적절하지 않습니다. MarketInfo(Symbol(), MODE_STOPLEVEL)에 지정된 최소 허용 거리 준수 여부를 확인해야 합니다. 가장 먼저 눈에 들어온 것은.
일반적으로 개봉할 때가 아니라 주문을 수정할 때 이러한 수표를 본 적이 있습니다. 결국 바이스탑에 레이오프 가격을 정할 때 Ask보다 가격이 더 낮으면 그건 실수일 테니까요. 저는 이미 겪었습니다. 그리고 만약 10pp. 정지하면 정지 수준 값보다 분명히 높습니다. 저는 틱으로 거래하지 않습니다 :)
두 번째 - 주문한 가격을 인쇄합니다. 스톱 앤 테이크는 Ask와 Bid가 아니라 주문 가격을 기준으로 해야 합니다.
나는 이것이 수정을위한 것입니까? 역시 개봉할 때는 BID와 ASC가 중요합니다. 위 포스팅에서 다 다루었습니다.
안녕하세요,
전문가를 여러 창에서 동시에 작업하게 하고 싶습니다. 그러나 각 악기에 대해 하나의 주문만 열 수 있습니다. 이제 조건은 다음과 같습니다.
정수 합계 = OrdersTotal();
if (total<1) {분석 및 개방 포즈 블록} else {분석 및 포즈 폐쇄 블록 }
이제 동시에 두 개의 악기에 있으면 하나를 열 때 다른 하나의 작업이 차단됩니다. 그래서 다음과 같이 썼습니다.
정수 합계 = OrdersTotal();
정수 cnt;
if(총>0)
{
for(cnt=0;cnt<전체;cnt++)
{
주문 선택(cnt, SELECT_BY_POS, MODE_TRADES );
if(OrderSymbol()==Symbol())
{
Symbol_FLAG = 참;
}
}
}
if(total<1 || total>0 && Symbol_FLAG == false) {ntposes를 분석하고 열기 위한 블록}...
하지만 테스터에서는 작동하지 않습니다.
내가 실현할 수 없는 일을 시작한 것이 아닐까?