[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 751

 
ToLik_SRGV :

잼은 분명합니다. 역사에서 지는 순서는 아무데도 가지 않기 때문에 모든 틱에서 위치를 엽니 다. 그래서 모든 틱에서 그것을 찾고 주제의 제어 변수 값을 다음으로 채 웁니다. 값이 같으면 거래 시작을 위한 차단이 트리거됩니다.


그러나 그것을 Schaub으로 만드는 방법, 그는 그것을 다시 찾지 않았거나 오히려 이미 해결 된 것을 찾지 않았습니다.

 
FoxUA :

그러나 그것을 Schaub으로 만드는 방법, 그는 그것을 다시 찾지 않았거나 오히려 이미 해결 된 것을 찾지 않았습니다.

이 블록을 제거하십시오:

 for ( int cnt=OrdersHistoryTotal();cnt> 0 ;cnt--)
     {
 OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);
{ if (OrderMagicNumber()== mag &&
OrderSymbol()== Symbol ()) 
{ if (OrderType() == OP_BUY )  {b= 1 ; if (OrderClosePrice()==OrderTakeProfit()) bt= 1 ; 
if (OrderClosePrice()==OrderStopLoss()) bs= 1 ; bl=OrderLots()* 100 ; break ;}
if (OrderType() == OP_SELL)  {s= 1 ; if (OrderClosePrice()==OrderTakeProfit()) st= 1 ; 
if (OrderClosePrice()==OrderStopLoss()) ss= 1 ; sl=OrderLots()* 100 ; break ;}
            }
            
            
         }
      }

그리고 이것을 다음으로 교체하십시오.

   for ( int cnt=OrdersHistoryTotal();cnt> 0 ;cnt--){
      static int num_ticket;
      if (! OrderSelect (cnt- 1 , SELECT_BY_POS, MODE_HISTORY)) break ;
      if (OrderMagicNumber()== mag && OrderSymbol()== Symbol ()){      
      if (num_ticket != OrderTicket())num_ticket = OrderTicket(); else break ;
         if (OrderType() == OP_BUY){
            b= 1 ;
            if (OrderClosePrice()==OrderTakeProfit())bt= 1 ;
            if (OrderClosePrice()==OrderStopLoss())bs= 1 ;
            bl=OrderLots()* 100 ;
            num_ticket = OrderTicket();
            break ;
         }
         if (OrderType() == OP_SELL){
            s= 1 ;
            if (OrderClosePrice()==OrderTakeProfit())st= 1 ; 
            if (OrderClosePrice()==OrderStopLoss())ss= 1 ;
            sl=OrderLots()* 100 ;
            num_ticket = OrderTicket();
            break ;
         }
      }
   }

무엇보다 마지막으로 거래한 마지막 거래의 티켓 번호를 각각 기억하고 확인하며 동일한 신호에 대한 개통을 허용하지 않는다는 점에서 다릅니다.

 
ToLik_SRGV :

이 블록을 제거하십시오:


테스트에 대해 매우 감사합니다. 모든 것이 작동하는 것 같습니다.

 
Abzasc :

아마 그런 것 같아요.

추신 "SRC" 코드 삽입 버튼을 사용하면 읽기 불편합니다.


정말 감사합니다 ! bool 대신 UseHourTrade2에 대해 int를 작성했습니다))
 

친구, 좋은 오후입니다.

다음 문제에 대해 귀하와 상담하고 싶습니다.

이제 저는 두 번째 통화 쌍에 형성된 판독값(지그재그)을 첫 번째 통화 쌍의 창으로 전송하는 표시기를 작업 중입니다.

그러나 문제가 발생했습니다.

예를 들어 따옴표에 큰 "갭"이 있는 경우 한 쌍은 1.4237로, 다른 한 쌍은 0.8345로 인용하면 이러한 표시기가 화면 전체에 "흩어져" 있어 시각적으로 그리 편리하지 않습니다...

첫 번째 따옴표를 고려하여 두 번째 쌍에서 표시기의 "좌표"를 변환하는 방법(가격을 "상대적"으로 만드는 방법)?

조언과 추천에 미리 감사드립니다.

 
Morzh09 :

친구, 좋은 오후입니다.

다음 문제에 대해 귀하와 상담하고 싶습니다.

이제 저는 두 번째 통화 쌍에 형성된 판독값(지그재그)을 첫 번째 통화 쌍의 창으로 전송하는 표시기를 작업 중입니다.

그러나 문제가 발생했습니다.

예를 들어 따옴표에 큰 "갭"이 있는 경우 한 쌍은 1.4237로, 다른 한 쌍은 0.8345로 인용하면 이러한 표시기가 화면 전체에 "흩어져" 있어 시각적으로 그리 편리하지 않습니다...

첫 번째 따옴표를 고려하여 두 번째 쌍에서 표시기의 "좌표"를 변환하는 방법(가격을 "상대적"으로 만드는 방법)?

조언과 추천에 미리 감사드립니다.

링크를 봐. 스케일링 자체는 원래 거기에서 수행됩니다.

https://www.mql5.com/ru/code/7933

 

안녕하세요!

어떻게 하면 쉽게 할 수 있는지 알려주세요

if (잔액 > 600)

{

lot_mod = 0.1;

}

if (잔액 > 700)

{

lot_mod = 0.11;

}

if (잔액 > 800)

{

lot_mod = 0.12;

}

if (잔액 > 900)

{

lot_mod = 0.13;

}

등등 .... 그리고이 형식에서는 너무 광범위하게 나타납니다.

고맙습니다!

 
Lim1 :

안녕하세요!

어떻게 하면 쉽게 할 수 있는지 알려주세요

등등 .... 그리고이 형식에서는 너무 광범위하게 나타납니다.

고맙습니다!





y=a*x+b와 같은 방정식이 도움이 될 것입니다.
 
Lim1 :

안녕하세요!

어떻게 하면 쉽게 할 수 있는지 알려주세요





로트 계산 공식을 정의하면 끝입니다. 그렇지 않으면 목욕을 해야 합니다.
 

Lim1 , 다음과 같이 시도하십시오.

 int BalanceExcessIn100s = MathFloor ( ( Balance - 600 ) / 100.01 );
Lot_mod = BalanceExcessIn100s * 0.01 + 0.1 ;
사유: