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

 

글쎄, 원칙적으로 전략 자체는 매우 길고 복잡하며 그것을 설명하는 것은 의미가 없습니다. 사이클을 만드는 것은 1 포인트입니다. 나는 total == 1 대신에 뭔가를 찾아야합니다. 요청에 해당하지 않는 경우 st .... ..... 1에 닫히면 ... 에 의해 닫히면 ... tp가 2에 열리면 조건은 주문이 없는 것입니다. 시장, 그게 다야

 
FoxUA :

글쎄, 원칙적으로 전략 자체는 매우 길고 복잡하며 그것을 설명하는 것은 의미가 없습니다. 사이클을 만드는 것은 1 포인트입니다. 나는 total == 1 대신에 뭔가를 찾아야합니다. 요청에 해당하지 않는 경우 st .... ..... 1에 닫히면 ... 에 의해 닫히면 ... tp가 2에 열리면 조건은 주문이 없는 것입니다. 시장, 그게 다야


그렇다면 당신이 사용하는 Igor의 기능은 당신에게 적합하지 않습니다. 마지막으로 마감된 주문의 유형과 마감된 이유(tp 또는 sl)를 반환하는 함수가 필요합니다. 특정 유형의 주문을 마지막으로 마감한 이유를 반환하는 대신. 이제 뭔가를 생각해내려고 합니다...

 
Figar0 :


그렇다면 당신이 사용하는 Igor의 기능은 당신에게 적합하지 않습니다. 마지막으로 마감된 주문의 유형과 마감된 이유(tp 또는 sl)를 반환하는 함수가 필요합니다. 특정 유형의 주문을 마지막으로 마감한 이유를 반환하는 대신. 이제 뭔가를 생각해내려고 합니다...


음, Klimo와 비슷한 것이 있으면 마지막 주문만 값을 닫을 수 있도록 해 주시면 대단히 감사하겠습니다.
 

Igor의 기능과 함께 이 기능을 사용해 보십시오.

 //+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2011                                                     |
//|  Описание : Возвращает тип последней закрытой позиции                      |
//|  если Buy 1 , если Sell -1                                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    symbol - наименование инструмента                                       |
//|    magic - MagicNumber                                                     |
//+----------------------------------------------------------------------------+
int LastCloseDeal( string symbol, int magic) 
{
   int lastclosetime=- 1 ;
   int lastcloseticket=- 1 ;
   int lastdealtype= 0 ;

   for ( int i= 0 ; i<OrdersHistoryTotal(); i++) 
  {
     if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ; 
     if (OrderSymbol()==symbol || OrderMagicNumber()==magic) 
    {
       if (lastclosetime<OrderCloseTime()) 
      {
        lastclosetime=OrderCloseTime();
        lastcloseticket=OrderTicket();
      }
    }
  }

   if ( OrderSelect (lastcloseticket, SELECT_BY_TICKET, MODE_HISTORY)) 
  {
     if (OrderType()==OP_BUY) lastdealtype= 1 ;
     if (OrderType()==OP_SELL) lastdealtype=- 1 ;   
  }
   return (lastdealtype);
}
 

그러면 코드 조각은 다음과 같아야 합니다.

 bool Buystop=isCloseLastPosByStop( NULL ,OP_BUY,MagBuy);
bool BuyTake=isCloseLastPosByTake( NULL ,OP_BUY,MagBuy);
bool Sellstop=isCloseLastPosByStop( NULL ,OP_SELL,MagBuy);
bool SellTake=isCloseLastPosByTake( NULL ,OP_SELL,MagBuy);

//--------------------------------------------------------------------------------+
if (total== 1 ) 
 {

   if (LastCloseDeal( Symbol (), MagBuy)== 1 )

  {
       if (Buystop==True)    OpenPosition( NULL , OP_SELL, Lot,Bid+Sl3* Point , Bid-Tp3* Point ,MagBuy);
       if (BuyTake==True)   OpenPosition( NULL , OP_BUY,  Lot, Ask-Sl* Point , Ask+Tp* Point ,MagBuy);      
   }

   if (LastCloseDeal( Symbol (), MagBuy)==- 1 )

   { 
       if (Sellstop==True)   OpenPosition( NULL , OP_BUY,  Lot, 0 , Ask+Tp* Point ,MagBuy);
       if (SellTake==True)    OpenPosition( NULL , OP_BUY,  Lot, Ask-Sl* Point , Ask+Tp* Point ,MagBuy); 
   }  

}

 
Figar0 :

그러면 코드 조각은 다음과 같아야 합니다.


ATP 노력하겠습니다
 
안녕하세요, 주어진 지점에서 가상 손절매 설정을 구현하는 데 도움을 주세요. 더 정확할 것입니다. 새 SL에 대한 데이터를 보내는 대신 고문은 단순히 변수(또는 다른 위치)에 데이터를 저장하고 추적, 추적, 추적 , 가격이 특정 수준(가격)에 도달하면 주문 마감에 대한 신호를 DC에 보냅니다(가상 손절매가 있는 일종의 가상 후행 정지). 즉, 1핍부터 DC 서버에 대해 보이지 않는 수준의 후행 정지를 포함하는 전문가... 실화인가요?
 
Centuriy :
안녕하세요, 주어진 지점에서 가상 손절매 설정을 구현하는 데 도움을 주세요. 더 정확할 것입니다. 새 SL에 대한 데이터를 보내는 대신 고문은 단순히 변수(또는 다른 위치)에 데이터를 저장하고 추적, 추적, 추적 , 가격이 특정 수준(가격)에 도달하면 주문 마감에 대한 신호를 DC에 보냅니다(가상 손절매가 있는 일종의 가상 후행 정지). 즉, 1핍부터 DC 서버에 대해 보이지 않는 수준의 후행 정지를 포함하는 전문가... 실화인가요?


예, 물론입니다. 오픈 주문을 진행하면 시작 가격 이 있습니다. 예를 들어 X 가격에 구매 시작, Y 포인트의 가상 손절매가 있으므로 현재 가격이 Z < = XY*Point인 경우 주문을 마감합니다. . 물론 스프레드도 고려해야 하고, 손절매가 일정하지 않고 계산된다면 계산된 값을 어딘가에 저장해야 하는 식으로 말이다.

"가상 정지", "가상 정지 손실" 등으로 검색하십시오.

 
Figar0 :


예, 물론입니다. 오픈 주문을 진행하면 시작 가격이 있습니다. 예를 들어 X 가격에 매수 시작, Y 포인트의 가상 손절매가 있으므로 현재 가격이 Z < = XY*Point인 경우 주문을 마감합니다. . 물론 스프레드도 고려해야 하고, 손절매가 일정하지 않고 계산된다면 계산된 값을 어딘가에 저장해야 하는 식으로 말이다.

"가상 정지", "가상 정지 손실"등으로 검색하십시오.

나는 주문에 대한 어느 정도 공식화된 자체 회계 없이는 할 수 없다고 생각합니다.

자신만의 주문 배열을 만들고 필요한 모든 데이터를 가상 정류장에 저장하십시오.

 
Figar0 :


예, 물론입니다. 오픈 주문을 진행하면 시작 가격이 있습니다. 예를 들어 X 가격에 매수 시작, Y 포인트의 가상 손절매가 있으므로 현재 가격이 Z < = XY*Point인 경우 주문을 마감합니다. . 물론 스프레드도 고려해야 하고, 손절매가 일정하지 않고 계산된다면 계산된 값을 어딘가에 저장해야 하는 식으로 말이다.

"가상 정지", "가상 정지 손실" 등으로 검색하십시오.

답변에 감사드립니다. 하지만 문제는 정지 손실이 아니라 후행 정지 자체(후행 정지)에서 최소 1포인트를 추적하고 OrderModify 명령을 각 틱 에서 DC, 이것은 훌리건리즘 IMHO ))

"그리고 정지 손실이 일정하지 않고 계산된다면 계산된 값은 어딘가에 안전하게 저장되어야 합니다."

이것에 대해 자세히 설명해 주시겠습니까? 저장 위치, 호출 방법, 변수여야 한다고 생각합니다. 아니면 제가 틀렸습니다...