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

 
granit77 :
Vladimir, 선택 항목을 게시한 이후로 이 문제를 처리한 것 같습니다.
파일이 아닌 메모리, Windows 변수 등을 통해 터미널에서 터미널로 하나의 변수를 전달하는 기성품의 간단한 옵션을 본 적이 없습니까?
마지막 옵션으로 한 터미널의 다른 터미널에서 온라인으로 Close[0] 라인을 그리는 표시기입니다. 틱 차트에서 이 비교는 매우 명확해 보입니다.

파일 매핑

또는 원자

https://www.mql5.com/ru/forum/54467

https://www.mql5.com/ru/forum/100455

MSDN 의 FileMapping 예제

 
trave :
한 대의 컴퓨터에서 MT4 단말기 간에 가장 빠른 데이터 교환이 이루어질 수 있도록 도와주세요.
도서관.
 
drknn :

거래를 복사해야 하는 경우 여기 복사기가 있습니다. 단순히 데이터 교환이라면 dll을 수행해야 합니다.
고맙습니다.
이 솔루션을 찾았습니다. 간단하고 빠르게 작동합니다. https://www.mql5.com/en/forum/127032
 
trave :
고맙습니다.
이 솔루션을 찾았습니다. 간단하고 빠르게 작동합니다. https://www.mql5.com/en/forum/127032 내 라이브러리

빠르지 않다. 거기에 파일을 통해. 디스크가 강간됩니다.

파일 작업을 위한 내 라이브러리 가 더 좋을 것입니다.

 
Zhunko :

빠르지 않다. 거기에 파일을 통해. 디스크가 강간됩니다.

파일 작업을 위한 내 라이브러리 가 더 좋을 것입니다.

내가 이해하는 한 전송은 파일이 아닌 "명명된 파이프"를 통해 이루어집니다.
 
#가져오기 " kernel32.dll "
int CreateNamedPipeA(string pipeName,int openMode,int pipeMode,int maxInstances,int outBufferSize,int inBufferSize,int defaultTimeOut,int 보안);
int PeekNamedPipe(int PipeHandle, int PassAsZero, int PassAsZero2, int PassAsZero3, int & BytesAvailable[], int PassAsZero4);
int CreateFileA(문자열 파일 이름, int AccessMode, int ShareMode, int PassAsZero, int CreationMode, int FlagsAndAttributes, int AlsoPassAsZero);
int CloseHandle(int 파일 핸들);
int ReadFile(int FileHandle, int BufferPtr, int BufferLength, int & BytesRead[], int PassAsZero);
int MulDiv(문자열 X, int N1, int N2);

#수입

확실히 - 디스크를 통하지 않습니다.

 
trave :
내가 이해하는 한 전송은 파일이 아닌 "명명된 파이프"를 통해 이루어집니다.

무심코 바라보았다. CreateNamedPipe()가 있습니다.

컴퓨터 간에 데이터를 전송하는 경우 좋은 옵션입니다. 그러나 컴퓨터 내부에서는 매핑을 사용하는 것이 좋습니다. 위의 링크.

MQL4 코드에서 WinAPI 함수를 호출 하지 않는 것이 훨씬 좋습니다. 이것은 매우 느리고 신뢰할 수 없습니다.

 
granit77 :
Vladimir, 선택 항목을 게시한 이후로 이 문제를 처리한 것 같습니다.
터미널에서 터미널로 하나의 변수를 메모리, Windows 변수 등을 통해, 즉 파일을 통하지 않고 전달하기 위한 기성품의 간단한 옵션을 본 적이 없습니까?
마지막 옵션으로 한 터미널의 다른 터미널에서 온라인으로 Close[0] 라인을 그리는 표시기입니다. 틱 차트에서 이 비교는 매우 명확해 보입니다.


아니, 만나지 못했다. 이제 한 터미널에서 다른 터미널로 데이터를 전송하는 가장 유사한 어드바이저를 만들어야 합니다.

WinApi를 사용할 수 있는 어딘가에 infa가 미끄러진 것 같습니다.

 
Roman. :

당신의 석방과 함께 ... :-)))

감사해요
 

도움 - 상황이 부조리합니다 !!!

 double ticket,sl;
for (cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)

    {
     if (! OrderSelect (cnt,SELECT_BY_POS, MODE_TRADES)) continue ;
       if (OrderSymbol() != symbol) continue ;
      ticket=OrderTakeProfit();sl=OrderStopLoss();
     if (OrderType() == OP_BUY) 
      {
       if (ticket== NormalizeDouble (tpb, Digits )) continue ;
       if (!OrderModify(OrderTicket(),OrderOpenPrice(),sl,tpb, 0 )) Print ( "tpb: " ,tpb, "  " , ticket-tpb);

      }
     if (OrderType() == OP_SELL) 
      {
       if (ticket== NormalizeDouble (tps, Digits )) continue ;
       if (!OrderModify(OrderTicket(),OrderOpenPrice(),sl,tps, 0 )) Print ( "tps: " ,tps, "  " , ticket-tps);            

      }
    }

이 코드 조각이 실행되면 전체 로그가 다음과 같이 처리됩니다.

 14 : 56 : 01 xxyyzz GBPUSD,M5: loaded successfully
14 : 56 : 01 xxyyzz inputs: step= 24 ; Step_coef= 1 ; TP= 10 ; mult= 2 ; min_lot= 0.05 ; lot_step= 50 ; slippage= 3 ;
14 : 56 : 02 2010.12 . 06 20 : 10   xxyyzz GBPUSD,M5: open #1 sell 0.05 GBPUSD at 1.5718 ok
14 : 56 : 02 2010.12 . 06 20 : 10   xxyyzz GBPUSD,M5: modify #1 sell 0.05 GBPUSD at 1.5718 sl: 0.0000 tp: 1.5708 ok
14 : 56 : 02 2010.12 . 06 22 : 27   xxyyzz GBPUSD,M5: open #2 buy 0.05 GBPUSD at 1.5713 ok
14 : 56 : 02 2010.12 . 06 22 : 27   xxyyzz GBPUSD,M5: modify #2 buy 0.05 GBPUSD at 1.5713 sl: 0.0000 tp: 1.5723 ok
14 : 56 : 02 2010.12 . 07 00 : 49   Tester: take profit #1 at 1.5708 (1.5705 / 1.5708)
14 : 56 : 02 2010.12 . 07 02 : 41   Tester: take profit #2 at 1.5723 (1.5723 / 1.5726)
14 : 56 : 03 2010.12 . 07 20 : 02   xxyyzz GBPUSD,M5: open #3 sell 0.05 GBPUSD at 1.5784 ok
14 : 56 : 03 2010.12 . 07 20 : 02   xxyyzz GBPUSD,M5: modify #3 sell 0.05 GBPUSD at 1.5784 sl: 0.0000 tp: 1.5774 ok
14 : 56 : 03 2010.12 . 07 20 : 17   Tester: take profit #3 at 1.5774 (1.5771 / 1.5774)
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: open #4 buy 0.05 GBPUSD at 1.5763 ok
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: modify #4 buy 0.05 GBPUSD at 1.5763 sl: 0.0000 tp: 1.5773 ok
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 03 2010.12 . 07 21 : 11   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
........
........
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: open #5 buy 0.10 GBPUSD at 1.5739 ok
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: modify #5 buy 0.10 GBPUSD at 1.5739 sl: 0.0000 tp: 1.5773 ok
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: tpb: 1.5773   - 0
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: modify #5 buy 0.10 GBPUSD at 1.5739 sl: 0.0000 tp: 1.5757 ok
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: modify #4 buy 0.05 GBPUSD at 1.5763 sl: 0.0000 tp: 1.5757 ok
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: tpb: 1.5757    0
14 : 56 : 05 2010.12 . 08 03 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
........
........ 
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: tpb: 1.5757    0
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: tpb: 1.5757    0
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: open #6 buy 0.20 GBPUSD at 1.5715 ok
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: modify #6 buy 0.20 GBPUSD at 1.5715 sl: 0.0000 tp: 1.5757 ok
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: tpb: 1.5757    0
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: tpb: 1.5757    0
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: modify #6 buy 0.20 GBPUSD at 1.5715 sl: 0.0000 tp: 1.5739 ok
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: modify #5 buy 0.10 GBPUSD at 1.5739 sl: 0.0000 tp: 1.5739 ok
14 : 56 : 05 2010.12 . 08 05 : 21   xxyyzz GBPUSD,M5: modify #4 buy 0.05 GBPUSD at 1.5763 sl: 0.0000 tp: 1.5739 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: open #7 buy 0.40 GBPUSD at 1.5691 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: modify #7 buy 0.40 GBPUSD at 1.5691 sl: 0.0000 tp: 1.5739 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: modify #7 buy 0.40 GBPUSD at 1.5691 sl: 0.0000 tp: 1.5719 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: modify #6 buy 0.20 GBPUSD at 1.5715 sl: 0.0000 tp: 1.5719 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: modify #5 buy 0.10 GBPUSD at 1.5739 sl: 0.0000 tp: 1.5719 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: modify #4 buy 0.05 GBPUSD at 1.5763 sl: 0.0000 tp: 1.5719 ok
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: tpb: 1.5719    0
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: tpb: 1.5719    0
14 : 56 : 05 2010.12 . 08 07 : 31   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 06 2010.12 . 08 09 : 11   Tester: take profit #4 at 1.5719 (1.5719 / 1.5722)
14 : 56 : 06 2010.12 . 08 09 : 11   Tester: take profit #5 at 1.5719 (1.5719 / 1.5722)
14 : 56 : 06 2010.12 . 08 09 : 11   Tester: take profit #6 at 1.5719 (1.5719 / 1.5722)
14 : 56 : 06 2010.12 . 08 09 : 11   Tester: take profit #7 at 1.5719 (1.5719 / 1.5722)
14 : 56 : 07 2010.12 . 08 20 : 10   xxyyzz GBPUSD,M5: open #8 buy 0.05 GBPUSD at 1.5796 ok
14 : 56 : 07 2010.12 . 08 20 : 10   xxyyzz GBPUSD,M5: modify #8 buy 0.05 GBPUSD at 1.5796 sl: 0.0000 tp: 1.5806 ok
14 : 56 : 07 2010.12 . 08 20 : 33   Tester: take profit #8 at 1.5806 (1.5806 / 1.5809)
14 : 56 : 07 2010.12 . 08 20 : 49   xxyyzz GBPUSD,M5: open #9 sell 0.05 GBPUSD at 1.5806 ok
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: modify #9 sell 0.05 GBPUSD at 1.5806 sl: 0.0000 tp: 1.5796 ok
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 20 : 50   xxyyzz GBPUSD,M5: OrderModify error 1
........
........
14 : 56 : 07 2010.12 . 08 21 : 11   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 21 : 11   Tester: take profit #9 at 1.5796 (1.5793 / 1.5796)
14 : 56 : 07 2010.12 . 08 21 : 30   xxyyzz GBPUSD,M5: open #10 buy 0.05 GBPUSD at 1.5795 ok
14 : 56 : 07 2010.12 . 08 21 : 30   xxyyzz GBPUSD,M5: modify #10 buy 0.05 GBPUSD at 1.5795 sl: 0.0000 tp: 1.5805 ok
14 : 56 : 07 2010.12 . 08 21 : 48   Tester: take profit #10 at 1.5805 (1.5805 / 1.5808)
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: open #11 sell 0.05 GBPUSD at 1.5806 ok
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: modify #11 sell 0.05 GBPUSD at 1.5806 sl: 0.0000 tp: 1.5796 ok
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 22 : 10   xxyyzz GBPUSD,M5: OrderModify error 1
14 : 56 : 07 2010.12 . 08 23 : 59   xxyyzz GBPUSD,M5: tps: 1.5796   - 0
14 : 56 : 07 2010.12 . 08 23 : 59   Tester: order #11 is closed

TP 값을 tpb 또는 tps 값과 동일하게 변경하려고 할 때 오류 1이 표시되지만 코드의 행이 왜

if (ticket==NormalizeDouble(tps,Digits)) continue;

해보자????!!!!!!!!!!!!!!!!

사유: