주문이 선택되었는지 확인하는 방법 - 페이지 10

 
artmedia70 :
나는 어떤 문제도 보이지 않는다. 그리고 소란은 이혼 ... 하나의 주 함수 A()에서 순서를 선택해야하고 주 함수 A()에서 호출되는 다른 함수 B()에서 함수 A()에서 선택한 순서를 처리해야합니다. 그리고 B() 함수에서는 그 주문이 아직 선택되어 있는지 확실히 알아야 합니다... 자, A() 함수에서 선택한 주문의 티켓을 B() 함수에 전달합니다. B() 함수에서 어떤 목록에서 주문이 선택되었는지 확인한 다음 A() 함수로 돌아갈 위치와 반환할 항목을 결정할 수 있습니다.

당신은 나를 잘못 이해했습니다. 어떤 이유로 사람들의 절반처럼. A() 함수에서 선택한 B() 함수의 순서를 처리할 필요가 없습니다. B() 함수는 A() 함수와 아무 관련 이 없으며 B() 함수에는 자체 논리가 있습니다. 그녀는 주문 수, 총 이익을 계산하고 마법 댓글, TP SL 등을 볼 수 있습니다. 작업은 함수 B()에서 함수 A()로 다시 돌아올 때 함수 B()가 명령으로 수행한 작업에 관계 없이 함수 B()를 호출하는 지점에서 함수 A()의 논리를 보장하는 것입니다. B() 함수를 호출 하기 전에 A() 함수에 의해 선택된 순서가 더 이상 선택되지 않고 선택된 순서가 B() 함수가 작업한 또 다른 임의의 임의 순서이기 때문에 위반되지 않습니다. 주기의 주문을 반복합니다.

아트미디어70 :
이제 터미널을 다시 시작한 후 last_select 변수에 어떤 일이 발생하는지 상상해 봅시다.

재시작 후, last_select 변수는 필요에 따라 0으로 초기화됩니다.

 

ㅋ ㅋ ㅋ ㅋ 10페이지부터 시작했습니다. 다음은 함수가 다른(선택되지 않은) 주문과 함께 작동하도록 하는 코드입니다.

 //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем актуальную информацию об ордере                                  |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
bool fGet_OrderDetails ( int fi_Ticket)               // OrderTicket()
{
     int lia_cmd[] = { 1 ,- 1 ,- 1 , 1 , 1 ,- 1 };
//----
     //---- На текущий момент может быть выделенным другой ордер
     int li_LastTicket = OrderTicket();
     if (li_LastTicket != fi_Ticket)
    {   
         if (! OrderSelect (fi_Ticket, SELECT_BY_TICKET))
        {fSet_Comment (fi_Ticket, fi_Ticket, 100 , "fGet_OrderDetails()" , True, GetLastError ()); return ( false );}
    }
     if (bi_curTicket != fi_Ticket)
    {
        bi_Type = OrderType();
        bd_OpenPrice = NDD (OrderOpenPrice());
        bd_Lots = OrderLots();
        bi_cmd = lia_cmd[bi_Type];
        bi_curTicket = fi_Ticket;
    }
    bd_curSL = NDD (OrderStopLoss());
    bd_curTP = NDD (OrderTakeProfit());
     //---- Выделяем первоначальный ордер
     if (li_LastTicket != fi_Ticket) { if (li_LastTicket > 0 ) OrderSelect (li_LastTicket, SELECT_BY_TICKET);}
//----
     return ( true );
}
이것은 단지 예입니다. 본질을 이해하는 사람은 잡을 것입니다.
 
TarasBY :

ㅋ ㅋ ㅋ ㅋ 10페이지부터 시작했습니다. 다음은 함수가 다른(선택되지 않은) 주문과 함께 작동하도록 하는 코드입니다.

이것은 단지 예입니다. 본질을 이해하는 사람은 잡을 것입니다.

이 경우에는 아닙니다. EA에는 로컬 또는 글로벌 변수가 있고 터미널 변수가 있습니다. 프로그램의 관점에서 볼 때 이러한 변수는 상호 작용합니다. 그 값은 언제든지 고문에게 완전히 설명할 수 없는 방식으로 변경될 수 있기 때문입니다. 주문 선택 의 부호는 바로 그러한 변수입니다. Metaquotes가 그래픽 개체의 "선택" 속성에 대한 액세스를 허용한 경우에도 동일한 일이 발생합니다. 따라서 피할 수 없는 결과: 선택한 주문의 번호를 알아야 할 때마다 주문을 선택해야 하거나, 고문의 논리에 필요한 경우에만 선택한 주문을 기억해야 합니다. 이 같은...
 
tara :
이 경우에는 아닙니다. EA에는 로컬 또는 글로벌 변수가 있고 터미널 변수가 있습니다. 프로그램의 관점에서 볼 때 이러한 변수는 상호 작용합니다. 그 값은 언제든지 고문에게 완전히 설명할 수 없는 방식으로 변경될 수 있기 때문입니다. 주문 선택의 부호는 바로 그러한 변수입니다. Metaquotes가 그래픽 개체의 "선택" 속성에 대한 액세스를 허용한 경우에도 동일한 일이 발생합니다. 따라서 피할 수 없는 결과: 선택한 주문의 번호를 알아야 할 때마다 주문을 선택해야 하거나, 고문의 논리에 필요한 경우에만 선택한 주문을 기억해야 합니다. 이 같은...

나는 당신에게 완전히 동의합니다:

  • 우선 그것부터 시작해야 합니다. 우리가 가지고 있는 것(MQL4 기능);
  • 둘째, 나는 한 곳에서 열린 주문으로 모든 거래 주문 을 처리하는 구조를 사용합니다. 주문 목록을 정렬하고 각 주문에 대해 필요한 모든 작업을 순서대로 수행합니다.

추신 그리고 "만약에 대비하여"코드에서 언급 한 검사를 수행하고 있습니다 ... :)

 

:)

즐거운 휴일 보내세요! 나를 위해 - 20년, 내 인생에서 최악은 아닙니다.

 
TarasBY :

ㅋ ㅋ ㅋ ㅋ 10페이지부터 시작했습니다. 다음은 함수가 다른(선택되지 않은) 주문과 함께 작동하도록 하는 코드입니다.

이것은 단지 예입니다. 본질을 이해하는 사람은 잡을 것입니다.

응. 여기 이 곳에서:

int li_LastTicket = OrderTicket();

호출되기 전에 OrderSelect에 대한 호출이 없으면 코드에서 런타임 오류 4105를 생성합니다. 각 틱의 끝에 GetLastError 검사 를 넣고 이 오류를 잡아내십시오.

 
tara :

:)

즐거운 휴일 보내세요! 나를 위해 - 20년, 내 인생에서 최악은 아닙니다.

축하합니다! 그리고 20년은 "믿음과 진리"를 섬겼습니까?
 
borilunad :
축하합니다! 그리고 20년은 "믿음과 진리"를 섬겼습니까?
이봐, 자기.
 
tara :
이봐, 자기.
그래서, 징집병, 내가 거기 있었을 때 나를 불렀던 것처럼, 어쩌면 지금은 조각!? :)
 
borilunad :
그래서, 징집병, 내가 거기 있었을 때 나를 불렀던 것처럼, 어쩌면 지금은 조각!? :)
예라고 말하면 더 쉬울까요? :)