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

 
말해봐, 전략 테스터 는 패스 수에 제한이 있습니까? 테스터를 시작했는데 테스트 시작 시 스트립 위 왼쪽 하단에서 0/1280(25706)이었습니다. 세어보니 25개의 모어가 가능한 모든 조합의 수입니다. 그러나 그는 1088/1280(25706)일 때 테스트를 마쳤습니다. 그가 단지 1088개의 패스를 만들었다는 것이 밝혀졌다? 처음 두 숫자는 실제로 무엇을 의미합니까?
게다가 그는 어쩐지 이상하게 생각한다... 3개의 매개변수에 대한 또 다른 기준을 추가했을 때 25개 조각이 3배 증가하지 않았지만 약 40개 정도의 모어를 내주었다. 이것은 결함입니까 아니면 어딘가에 잘못된 것입니까?
 
AndrejFX :
말해봐, 전략 테스터는 패스 수에 제한이 있습니까? 테스터를 시작했는데 테스트 시작 시 스트립 위 왼쪽 하단에서 0/1280(25706)이었습니다. 세어보니 25개의 모어가 가능한 모든 조합의 수입니다. 그러나 그는 1088/1280(25706)일 때 테스트를 마쳤습니다. 그가 단지 1088개의 패스를 만들었다는 것이 밝혀졌다? 처음 두 숫자는 실제로 무엇을 의미합니까?
게다가 그는 어쩐지 이상하게 생각한다... 3개의 매개변수에 대한 또 다른 기준을 추가했을 때 25개 조각이 3배 증가하지 않았지만 약 40개 정도의 모어를 내주었다. 이것은 결함입니까 아니면 어딘가에 잘못된 것입니까?
설명서를 읽으십시오. 거기에 개인적으로 자세히.
 

후행을 도와주세요!!!

이미 열린 StopLosses를 이전 양초의 높음 또는 낮음 수준에서 "TrailingStop" 거리로 추적해야 합니다. 엑스퍼트 어드바이저 런칭 후 첫 오픈 딜 주문에만 적용됩니다. StopLoss가 트리거되고 다음 거래가 열린 후 StopLoss 주문은 추적되지 않습니다 . 내가 올바르게 이해했다면 이것은 " ORDER_SL " 변수가 변경되지 않고 주문 변경 조건이 충족되지 않았기 때문입니다!? 그렇다면 왜 그리고 어떻게 수정합니까?

트롤 코드는 다음과 같습니다.

 int ORDER= OrdersTotal ();    
OrderSelect (ORDER,SELECT_BY_TICKET,MODE_TRADES);
int ORDER_Type=OrderType();
double ORDER_SL =OrderStopLoss();
double Point_High=iHigh(OrderSymbol(), 0 , 2 )-TrailingStop* Point ;
double Point_Low=iLow(OrderSymbol(), 0 , 2 )+TrailingStop* Point ;
             if (ORDER_Type==OP_BUY && ORDER_SL <Point_High){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(), 0 , CLR_NONE );
                     while (!IsTradeAllowed()) Sleep ( 100 );
            }
            if (ORDER_Type==OP_SELL && ORDER_SL >Point_Low){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(), 0 , CLR_NONE );
                     while (!IsTradeAllowed()) Sleep ( 100 );
            }

다음은 전체 고문입니다.

파일:
 

이 코드

 int ORDER= OrdersTotal ();    
OrderSelect (ORDER,SELECT_BY_TICKET,MODE_TRADES);

진주에 넣어야 합니다. 가장 흥미로운 점은 첫 번째 주문의 테스터에서만 작동하지만 작동한다는 것입니다.

 
Christoff :

후행을 도와주세요!!!

이미 열린 StopLosses를 이전 양초의 높음 또는 낮음 수준에서 "TrailingStop" 거리로 추적해야 합니다. Expert Advisor를 런칭한 후에는 첫 오픈 딜의 주문으로만 작동합니다. StopLoss가 트리거되고 다음 거래가 열린 후 StopLoss 주문은 추적되지 않습니다 . 내가 올바르게 이해했다면 "ORDER_SL"변수가 변경되지 않고 주문 변경 조건이 충족되지 않았기 때문입니다!? 그렇다면 왜 그리고 어떻게 수정합니까?

트롤 코드는 다음과 같습니다.

다음은 전체 고문입니다.

무언가를 트롤링하기 전에 선택해야 합니다. 먼저 고문이 열어 놓은 위치를 선택하여 터미널의 모든 열린 위치를 반복해야 합니다. 루프의 각 반복에서 필요한 순서가 선택되면 루프에서 직접 트레일을 호출하십시오. 이 경우에만 EA가 연 모든 위치가 추적됩니다.

다음과 같이 다소:

 void Trailing( string sy, int mn) 
{
   int       i, err, ORDER_Type, k= OrdersTotal ();
   double    PointX, ORDER_SL , Point_High, Point_Low;
 
   if (sy== "0" ) sy= Symbol ();
   int     dg=MarketInfo(sy, MODE_DIGITS);
   double pt=MarketInfo(sy, MODE_POINT);
   
   if (dg== 5 || dg== 3 ) PointX=pt* 10 ;
   if (dg== 4 || dg== 2 ) PointX=pt;
   
   for (i= 0 ; i<k; i++) {
       if ( OrderSelect (i, SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)         continue ;
         if (OrderType()> 1 )             continue ;
         if (OrderMagicNumber()!=mn)   continue ;
               
         ORDER_Type=OrderType();
         ORDER_SL =OrderStopLoss();
         Point_High=iHigh(OrderSymbol(), 0 , 2 )-TrailingStop*PointX;
         Point_Low=iLow(OrderSymbol(), 0 , 2 )+TrailingStop*PointX;
         if (ORDER_Type==OP_BUY)
             if ( NormalizeDouble (Point_High- ORDER_SL ,dg)> 0 ) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(), 0 , CLR_NONE );
             while (!IsTradeAllowed()) Sleep ( 100 );
            }
         if (ORDER_Type==OP_SELL)
             if ( NormalizeDouble ( ORDER_SL -Point_Low,dg)> 0 ) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(), 0 , CLR_NONE );
             while (!IsTradeAllowed()) Sleep ( 100 );
            }
         }
       if (! OrderSelect (i, SELECT_BY_POS)) {
         err= GetLastError ();
         Print ( "FUNC Trailing: Ошибка выбора ордера - " , err);
         break ;
         }
      }
   return ;
}

나는 당신의 후행 코드를 보지 않고 그대로 둡니다(편집도 필요하지만 StopLevel 수준을 초과하지 않는지 확인을 추가하거나 다른 것을 추가), 비교할 때 주문 및 정규화를 통한 주기만 추가했습니다. 후행 코드에 이중 값, 그래서 ... 약간의 유용성 ... 알아내고 싶다면 알아낼 것입니다 :)

추신. 코드를 확인하지 않고 그대로 썼기 때문에 오류가 있을 수 있습니다. 이것은 단지 예일 뿐입니다.

이제 위치를 추적해야 하는 코드 대신 다음 함수를 호출합니다.

Trailing( Symbol (), Magic);
매직 - 매직 넘버로 EA에서 고유한 정수로 설정되어 해당 주문을 다른 EA의 주문이나 마법이 전혀 없는 수동으로 열린 주문과 구별합니다.
함수를 호출할 때 Symbol()을 떠나면 Expert Advisor가 있는 통화 상품의 위치가 추적됩니다.
또는 Symbol() 대신 추적하려는 위치의 통화 쌍 이름을 삽입하십시오.
 
한 대의 컴퓨터에서 MT4 터미널 간에 가장 빠른 방법으로 데이터 교환을 설정할 수 있도록 도와주세요.
 
trave :
한 대의 컴퓨터에서 MT4 단말기 간에 가장 빠른 방법으로 데이터 교환이 이루어지도록 도와주세요.

거래를 복사 해야 하는 경우 여기 복사기가 있습니다. 단순히 데이터 교환이라면 dll-ku를 수행해야 합니다.
파일:
kopirowshik.zip  465 kb
 
drknn :

거래를 복사해야 하는 경우 여기 복사기가 있습니다. 단순히 데이터 교환이라면 dll-ku를 수행해야 합니다.

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

이 포럼에 도난당한 물건을 게시하지 마십시오. 여기는 목욕하는 길

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