[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 475

 
한 번에 하나 이상의 구매 주문이 있습니까?
 
dkfl.zrjdktdbx :
감사해요!!!

여기 시작 링크가 있습니다. 그 다음에는 IMHO입니다.
 
Ivn :

명확히 해주세요

분석 부분의 작업에는 엄격하게 지정된 기간이 사용됩니다. 또는 기간
 
그래서 조금 흥이 났나 하는 생각이 들더군요..
 int BUY;
 for ( i= OrdersTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS ); if ( OrderSymbol ()== Symbol ()&& OrderMagicNumber ( )==????){
if ( OrderType ( )==OP_BUY){BUY++;}}} 
   if ( BUY> stsBUY) { //Alert ("NashlY BUY " );
   for ( i= OrdersTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS );
if ( OrderMagicNumber ( )==???? && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_BUYSTOP) {    
 OrderDelete ( OrderTicket ( ) ); 
  stsBUY=BUY;   Alert ( "OrderDelete-OP_BUYSTOP" ,   GetLastError ( ) );      }

if ( OrderMagicNumber ( )==???? && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_BUYLIMIT) {    
 OrderDelete ( OrderTicket ( ) ); 
  stsBUY=BUY;   Alert ( "OrderDelete-OP_BUYSTOP" ,   GetLastError ( ) );      }


}}
아니요, 정확하지 않습니다. 분명히 구매 주문이 감지되면 모든 예금이 제거됩니다. 모든 구매 예금. 시작하기 전에 stsBUY를 설정해야 합니다. 오류를 확인하지 않았습니다.
 
Vinin :

분석 부분의 작업에는 엄격하게 지정된 기간이 사용됩니다. 또는 기간

분석을 위해 "물고기"를 떨어 뜨릴 수 있습니까? 의견이 있으면 감사하겠습니다.
 
dkfl.zrjdktdbx :
그래서, 나는 그것을 생각해 냈습니다. 아마도 약간 흥분 .. 아니요, 그것은 정확하지 않습니다. 분명히 여기에서 구매 주문이 발견되면 모든 예금이 제거됩니다 .. 모든 구매 예금. 시작하기 전에 stsBUY를 설정해야 합니다. 오류를 확인하지 않았습니다.


코드를 더 잘 게시했어야 합니다. 실수 없음

그리고 논리가 나쁘다

 
Ivn :

분석을 위해 "물고기"를 떨어 뜨릴 수 있습니까? 의견이 있으면 감사하겠습니다.

"2배"가 얼마냐고 묻지 않으려면 최소한 교과서를 조금 읽어야 합니다.

 
FelixFX :

"2배"가 얼마냐고 묻지 않으려면 최소한 교과서를 조금 읽어야 합니다.


중요한 말에 대해 논쟁을 벌이지는 않지만, 만약 내가 이것을 이해했다면 그것이 논리적인지 묻지 않을 것입니다.

즉, 지표에 기간이 표시된 알고리즘에서 명확하게 규정합니다.

바르게?

그럼 다음을 설명해주세요....

어드바이저 - 스토캐스틱을 넘어 거래를 시작합니다. 유로 달러 쌍, 기간 30.

여기 알고리즘이 있습니다

정수 시작()
{
새로 고침(); // 데이터 업데이트
기호=기호();

x1=x;
y1=y;

x=iStochastic(NULL,0,5,3,3,MODE_SMA,1,0,0); // 0 bar에서 확률적 메인 라인의 값
y=iStochastic(NULL,0,5,3,3,MODE_SMA,1,1,0); // 0 bar에서 확률적 신호 라인의 값
경고("확률적 기본",x);
경보("확률적 신호",y);

//---- 신호와 메인 라인의 교차점
if (y < x && y1> x1) // 통과 확인
{
f=1; // 플래그 업
}
//------------------------------------------------ --------------------
if (y > x && y1< x1) // 다운 패스 확인
{
f=2; //플래그 다운
}
//----라인 20의 맨 아래에서 맨 위로 메인 라인의 교차를 확인합니다.
if (f==1 && x1<20 && x>= 20)
{ if (Ticket > 0) // 주문이 있으면 삭제
OrderClose(티켓, Lts, Bid, 10);
SL=입찰가 - 손절매*포인트; // SL 열기를 계산합니다.
TP=입찰가 + 이익실현*포인트; // TP 오픈을 계산합니다.
Alert("구매를 열려고 합니다. 응답을 기다리는 중입니다..");
OrderSelect(티켓, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(티켓, SELECT_BY_TICKET))
{

티켓=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//오픈 구매
}

if (티켓 > 0) // 성공 :)
{
Alert("구매 주문 오픈",티켓);
반품;
f=0; // 플래그 재설정
}

}
//----라인 80의 위에서 아래로 메인 라인의 교차 확인
if (f==2 && x1>80 && x<= 80)
{ if (티켓 > 0)
OrderClose(티켓,Lts,Ask, 10); // 주문이 있으면 삭제
SL=매도 + 손절매*포인트; // SL 열기를 계산합니다.
TP=요청 - TakeProfit*포인트; // TP 오픈을 계산합니다.
Alert("판매를 열려고 합니다. 응답을 기다리는 중입니다..");
OrderSelect(티켓, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(티켓, SELECT_BY_TICKET))
{
티켓=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//오픈 구매
}
if (티켓 > 0) // 성공 :)
{
Alert("판매 주문 오픈",티켓);
반품;
f=0; // 플래그 재설정
}

}


리턴(0);
}

실행하면 어드바이저는 30분 이내에 주문을 열고 닫습니다. 즉, 9.04에 열고 9.05에 닫습니다. 09.06에 다시 열립니다. 9.07 등에 마감합니다. 그리고 한 방향으로.

왜 이런 일이 발생합니까?

감사합니다.

 
sss2019 :
그리고 BUYLIMIT 및 BUYSTOP 두 개의 미결 주문이 있는 경우 BUYLIMIT가 트리거될 때 BUYSTOP을 제거해야 하며 그 반대의 경우도 마찬가지입니다. 이 조건을 충족할 수 있는 방법을 알려주시겠습니까?

실제로 논리는 다음과 같아야 합니다.

1. 두 개의 보류 주문 이 있고 단일 위치가 없는 경우 변수에 이러한 보류 주문의 티켓을 기억하십시오.

2. 보류 중인 SellStop이 있고 보류 중인 BuyStop이 없는 경우 Buy 위치가 있으면 마지막으로 열린 Buy 위치의 티켓과 저장된 BuyStop 티켓을 비교합니다.

동일하면 BuyStop이 시장 Buy로 변환된 것입니다. --> 보류 중인 SellStop이 있으면 삭제합니다.

3. 보류 중인 BuyStop이 있고 보류 중인 SellStop이 없는 경우 Sell 위치가 있으면 마지막으로 열린 Sell 위치의 티켓과 저장된 SellStop 티켓을 비교합니다.

동일하면 SellStop은 시장 Sell로 변환됩니다. --> 보류 중인 BuyStop이 있으면 삭제합니다.

이런... 논리의 스케치일 뿐입니다. 여전히 기능을 획득해야 합니다.

 
글쎄, 실례합니다. 빠른 방법으로 저입니다. 사실, 네, 제 잘못입니다. 잘못된 대초원에 있습니다. 필요할 것입니다. 역사의 명령을 살펴보고 마지막 명령을 찾고 ... 그리고 ... 아니 ..하지만 실제로는 알 수 없습니다.