열린 직위를 그룹으로 나누기 - 페이지 12

 
Sergey Voytsekhovsky :
각 TakeProfit에 대해 마이너스가 있는 인쇄물이 있고 시장에 진입할 때 마다 플러스가 있는 인쇄물이 있습니다. 집단농장 속어 죄송합니다만 저는 절대 독학이고 이 주제에 대해 말할 사람이 없고 단어를 모릅니다.


예, 그리고 저는 독학했습니다. 일반적으로 코드를 줄이거나 줄였습니다.

속성을 읽기 전에 코드에 거래 선택을 추가해야 합니다.

     HistoryDealSelect (trans.deal);

또는 선택의 성공 여부를 확인합니다.

     if (! HistoryDealSelect (trans.deal))
       Print ( GetLastError ());
 
Alexey Viktorov :

예, 저는 독학했습니다. 일반적으로 코드를 줄이거나 줄였습니다.

어떤 면에서는 도움이 되었지만 항상 대화하는 것이 유용하며 대화가 유용한지 아닌지는 나중에 알게 될 것입니다. 따라서 가장 말이 많은 사람들은 평균을 내서 MinFavor를 증가시키지만 MaxFavor는 감소시킵니다. 에크 거절했습니다.

Надо добавить в код выбор сделки перед чтением свойств.

или с проверкой успешности выбора.

이것이 당신의 생각입니까 아니면 이것을 하도록 권장합니까 ???

 

기능부

 bool    HistoryDealSelect ( 
   ulong   ticket     // тикет сделки 
   );

조심하세요 거기에 기능 하나 빼놨는데 아직 사용법을 몰라서

Функция HistoryDealSelect () очищает в mql5-программе список сделок, доступных для обращений, и копирует в него одну единственную сделку, если выполнение HistoryDealSelect () завершилось успешно.
 

다음 작업은 지식이 풍부한 사람들을 토론에 초대하는 것입니다.

거래 티켓이 있는 경우 (TP에서 포지션 을 마감한 경우) 이 거래로 마감된 포지션의 티켓을 반환하는 방법은 무엇입니까?

 2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    take profit triggered # 6571 buy 0.01 EURUSD 1.16343 tp: 1.16389 [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    deal # 6572 sell 0.01 EURUSD at 1.16389 done (based on order # 6572 )
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    deal performed [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    order performed sell 0.01 at 1.16389 [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    Закрыта позиция --- Тикет сделки--- 6572 ---Позицию в структуре ArrayDealOut пометить на удаление ------------

문제는 실제 위치를 저장해야 하는 구조를 가지고 있다는 것입니다. 그들이 게임을 떠날 때 청소해야 합니다.

???

 
Sergey Voytsekhovsky :

어떤 면에서는 도움이 되었지만 항상 대화하는 것이 유용하며 대화가 유용한지 아닌지는 나중에 알게 될 것입니다. 따라서 가장 말이 많은 사람들은 평균을 내서 MinFavor를 증가시키지만 MaxFavor는 감소시킵니다. 에크 나는 그것을 거절했다.

이것이 당신의 생각입니까 아니면 이것을 하도록 권장합니까 ???

추천할 뿐만 아니라 최근에 삭제된 줄을 내 코드에서 반환했습니다.

 
Sergey Voytsekhovsky :

기능부

조심하세요 거기에 기능 하나 빼놨는데 아직 사용법을 몰라서

어디에서 선택을 하느냐에 달려 있습니다. OnTradeTransaction에서 이것은 아무것도 위협하지 않습니다. 그리고 일반적으로 주문, 거래 또는 포지션의 속성에 접근하기 전에 그를 선택하는 것을 습관화해야 합니다.

그리고 선택 후 실행이 일부 기능으로 이동하고 다른 선택이 이루어지면 반환 시 목록에 마지막으로 선택된 항목이 포함된다는 것을 잊지 마십시오.

 
Sergey Voytsekhovsky :

다음 작업은 지식이 풍부한 사람들을 토론에 초대하는 것입니다.

거래 티켓이 있는 경우 (TP에서 포지션 을 마감한 경우) 이 거래로 마감된 포지션의 티켓을 반환하는 방법은 무엇입니까?

문제는 실제 위치를 저장해야 하는 구조를 가지고 있다는 것입니다. 그들이 게임을 떠날 때 청소해야 합니다.

???

글쎄, 그것은 아주 간단합니다 ...

 /*********************TradeTransaction function**********************/
void OnTradeTransaction ( const MqlTradeTransaction & trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
 {
  if (trans.type == TRADE_TRANSACTION_DEAL_ADD && trans.symbol == _Symbol )
   {
     if (! HistoryDealSelect (trans.deal))
      Print(GetLastError());
     /******************** Если открылась позиция********************/
     if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) == DEAL_ENTRY_IN )
       Print ( "********** открытие сделка " , trans.deal, " позиция " , trans.position);
     /******************** Если закрылась позиция********************/
     if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) == DEAL_ENTRY_OUT )
     {
       if ( HistoryDealGetInteger (trans.deal, DEAL_REASON ) == DEAL_REASON_TP )
       {
         Print ( "********** закрытие по тейку сделка " , trans.deal, " позиция " , trans.position);
       }
       if ( HistoryDealGetInteger (trans.deal, DEAL_REASON ) == DEAL_REASON_SL )
       {
         Print ( "********** закрытие по стопу сделка " , trans.deal, " позиция " , trans.position);
       }
     }
   }
 } /*******************************************************************/
CN       0        19 : 20 : 27.920     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 20    ********** закрытие по стопу сделка 27 позиция 26
CG       0        19 : 20 : 27.920     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 20    ********** открытие сделка 28 позиция 28
HJ       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    stop loss triggered # 28 buy 0.1 GBPUSD.m 1.30698 sl: 1.30598 tp: 1.30798 [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
GE       0        19 : 20 : 28.023     Trades   2020.02 . 03 12 : 01 : 40    deal # 29 sell 0.1 GBPUSD.m at 1.30598 done (based on order # 29 )
JF       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    deal performed [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
CD       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    order performed sell 0.1 at 1.30598 [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
GI       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    market buy 0.1 GBPUSD.m sl: 1.30512 tp: 1.30712 ( 1.30598 / 1.30612 / 1.30598 )
FQ       0        19 : 20 : 28.023     Trades   2020.02 . 03 12 : 01 : 40    deal # 30 buy 0.1 GBPUSD.m at 1.30612 done (based on order # 30 )
QQ       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    deal performed [ # 30 buy 0.1 GBPUSD.m at 1.30612 ]
ON       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    order performed buy 0.1 at 1.30612 [ # 30 buy 0.1 GBPUSD.m at 1.30612 ]
KR       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    CTrade:: OrderSend : market buy 0.10 GBPUSD.m sl: 1.30512 tp: 1.30712 [done at 1.30612 ]
RM       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    ********** закрытие по стопу сделка 29 позиция 28
FP       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    ********** открытие сделка 30 позиция 30
NK       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    take profit triggered # 30 buy 0.1 GBPUSD.m 1.30612 sl: 1.30512 tp: 1.30712 [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
IS       0        19 : 20 : 28.295     Trades   2020.02 . 03 12 : 02 : 39    deal # 31 sell 0.1 GBPUSD.m at 1.30712 done (based on order # 31 )
NE       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    deal performed [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
KI       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    order performed sell 0.1 at 1.30712 [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
IH       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    market buy 0.1 GBPUSD.m sl: 1.30626 tp: 1.30826 ( 1.30712 / 1.30726 / 1.30712 )
EI       0        19 : 20 : 28.295     Trades   2020.02 . 03 12 : 02 : 39    deal # 32 buy 0.1 GBPUSD.m at 1.30726 done (based on order # 32 )
LR       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    deal performed [ # 32 buy 0.1 GBPUSD.m at 1.30726 ]
RL       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    order performed buy 0.1 at 1.30726 [ # 32 buy 0.1 GBPUSD.m at 1.30726 ]
HR       0        19 : 20 : 28.297     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    CTrade:: OrderSend : market buy 0.10 GBPUSD.m sl: 1.30626 tp: 1.30826 [done at 1.30726 ]
HS       0        19 : 20 : 32.663     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    ********** закрытие по тейку сделка 31 позиция 30
KP       0        19 : 20 : 32.663     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    ********** открытие сделка 32 позиция 32
 
Alexey Viktorov :

어디에서 선택을 하느냐에 달려 있습니다. OnTradeTransaction에서 이것은 아무것도 위협하지 않습니다. 그리고 일반적으로 주문, 거래 또는 포지션의 속성에 액세스하기 전에 그를 선택하는 것을 습관화해야 합니다.

그리고 선택 후 실행이 일부 기능으로 이동하고 다른 선택이 이루어지면 반환 시 목록에 마지막으로 선택된 항목이 포함된다는 것을 잊지 마십시오.

젠장, 이 모든 것을 어떻게 이해할 수 있습니까, 저에게는 초월적인 추상입니다.

나는 알려진 거래로 마감된 포지션의 티켓을 검색하여 위의 질문을 해결하려고 했습니다. 즉시 인쇄물에서 요청했기 때문에 즉시 시작했던 곳으로 돌아갔습니다. 모든 TakeProfits가 인쇄물에 들어가는 것과는 거리가 멀습니다.

 
Alexey Viktorov :

글쎄, 그것은 아주 간단합니다 ...

요미, 그동안 '내 매력'을 가지고 얌전히 침묵을 지켰어???

당신에게 큰 자비.

그러나 나는 많은 새로운 것을 배웠지만 그것을 다시 게시할 것입니다. 그리고 그것이 마음도 마음도 아닙니다.

 
Sergey Voytsekhovsky :

요미, 그동안 '내 매력'을 가지고 얌전히 침묵을 지켰어???

당신에게 큰 자비.

그러나 나는 많은 새로운 것을 배웠지만 그것을 다시 게시할 것입니다. 그리고 그것이 마음도 마음도 아닙니다.

예, 아무 것도 없었습니다. 방금 확인을 위해 이것을 작성하고 기록 데이터에 대한 디버거에서 실행했습니다. 디버거 사용법을 배웁니다. 매우 유용한 스킬입니다.

저는 VBA(Visual Vasik for Applications)라는 프로그램을 통해 Excel로 프로그래밍을 시작했고 그곳에서 디버깅에 대해 알게 되었습니다. 그 이후로 받은 값을 제어하기 위해 인쇄에 익숙해지기가 얼마나 어려웠는지... 그리고 mql5에 디버깅이 도입되었을 때 고통이 끝났다는 사실이 어린아이처럼 기뻤습니다.