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

 
Cmu4 :

아니오 .. 나는 당신이 제안한대로했습니다 - 동일하게 유지됩니다.

또한 조건에 따라 열고 닫는 블록으로 분리하여 코드를 변경했습니다. 모두 하나. 나는 이미 무엇을해야할지 모르겠다.

다음은 예고편에 나오는 테스터의 고문인 테스터의 스크린샷입니다.


열린 위치의 제어와 함께 이와 같을 수 있습니다.
파일:
 
Vinin :

열린 위치의 제어와 함께 이와 같을 수 있습니다.


저도 이런 방향으로 생각했습니다. 그러나 나는 오류 자체에 관심이 있습니다. 그녀는 어디에 있니?

추신 코드에 추가해주셔서 감사합니다! 컴파일할 때 Closeall 함수에서 order_type 의 불확실성에 맹세합니다.

 
Cmu4 :


저도 이런 방향으로 생각했습니다. 그러나 나는 오류 자체에 관심이 있습니다. 그녀는 어디에 있니?

추신 코드에 추가해주셔서 감사합니다! 컴파일할 때 Closeall 함수에서 order_type의 불확실성에 맹세합니다.


 void Closeall( int OP=- 1 )
{
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) 
   { 
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) 
      { 
         if (OrderSymbol()== Symbol ())
         { 
             if (OrderType()==OP || OP=- 1 ) 
            {
               if (OrderType()==OP_BUY)
                  OrderClose(OrderTicket(),OrderLots(),Bid, 3 , Red );
               else if (OrderType()==OP_SELL)
                  OrderClose(OrderTicket(),OrderLots(),Ask, 3 , Green );
            }
         } 
      }
   }
}
 
Cmu4 :

아니오 .. 나는 당신이 제안한대로했습니다 - 동일하게 유지됩니다.

또한, 조건에 따라 열고 닫는 블록으로 분리하여 코드를 변경했습니다. 모두 하나. 나는 이미 무엇을해야할지 모르겠다.

다음은 예고편에 나오는 테스터의 고문인 테스터의 스크린샷입니다.

알아야 할 사항: 위치가 연속적으로 열리는 방법은 무엇입니까? 매수, 매도, 매수, 매도 등 또는 연속으로 하나(예: Bai).

매수와 매도를 번갈아 가며 연다고 생각합니다.

이유: 비교되는 MACD는 매우 가깝고 위치(크게 작게)를 빠르게 변경합니다. 따라서 먼저 하나의 조건이 충족되고 다른 조건이 충족됩니다.

결정:

 if (MA1-MA2 > 0.0001 && MA2-MA3 > 0.0001 && Napr== 1 ) //или другая константа
 
extralifes :

아니오를 통해 작동하지 않는 경우.

(d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 조건이 맞는 동안 iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0 ,rsi_period ,PRICE_CLOSE,0<0.7)

마찬가지로 그 반대도 마찬가지입니다.

while 또는 bool을 사용하여 어떻게든 이 작업을 수행할 수 있습니까? 프로그래밍에서 완전한 크레인. 나는 논리적 사슬을 이해하지만 코드로 손을 번역하는 것은 비뚤어진 것입니다.


따라서 문제는 이것에 있지 않습니다 ... 모든 것이 다음과 같은 경우에 작동해야 합니다. ... 그렇게 밝혀졌습니다. 동안 (동일한 동안) 조건 (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 - 또한 충족됨 동시에 RSI( NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7), 그러면 우리는 마을만 엽니다...

여기와 bool - 아무도 필요하지 않습니다 - 모든 것이 명확할 때 왜 여기 플래그를 엉망으로 만들 필요가 있습니까? 이러한 모든 조건이 충족되는 한 우리는 매수 또는 매도 주문을 엽니다.

total= OrdersTotal ();
if (total< 1 )

{

   if (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>= 2 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 2 )> 0.7 &&   iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 0 < 0.7 )
         OrderSend ( Symbol (), OP_SELL, lots, NormalizeDouble (Bid, Digits ), 3 , /*Ask+10*Point*/ 0 , /*Bid-10*Point*/ 0 , "ADX sell" , magic, 0 , CLR_NONE );
   

   if (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>= 2 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 2 )< 0.3 && iRSI ( NULL , 0 ,rsi_period, PRICE_CLOSE , 0 ) > 0.3 ) 
       OrderSend ( Symbol (), OP_BUY, lots, NormalizeDouble (Ask, Digits ), 3 , /*Bid-10*Point*/ 0 , /*Ask+10*Point*/ 0 , "ADX buy" , magic, 0 , CLR_NONE );

  }

자신을 다시 한 번 살펴보십시오.

코드의 다른 곳에서 오류를 찾으십시오 ... "작동하지 않으면 통해"라고 씁니다. 더 자세히 해독하십시오. "로그"에 무엇을 기록합니까?

 
ikatsko :

안녕하세요! 나는 (때로는) StopOut에 가는 것을 원하지 않습니다. 나는 최악의 조건에서 StopOut을 "포착"하지 않는 값으로 로트를 제한하기로 결정했습니다. 나는 오랜 시간 시행착오를 겪었다. 누군가가 해결책을 가지고 있을까요?

초기 데이터:

- 통화 쌍 - 반드시 EURUSD는 아님

- 가격 (구매/판매 가격)

- StopLoss를 포인트 단위로 지정(StopLoss 수준에 도달하더라도 StopOut을 catch하지 않는 최악의 조건이라고 가정)

- 로트의 설정 값

- MT4 기능을 사용하여 다른 값 추출: 1랏의 크기, 레버리지, 교차율

코드를 원합니다.

이론적으로 나는 그것이 필요하다는 것을 이해합니다. 잔액에서 StopLoss 수준에서 가능한 손실을 뺀 값을 마진으로 나눕니다. 그리고 이 값은 StopOut(백분율)보다 커야 합니다.

이 정도

 int level=AccountStopoutLevel(); ///// ТОЛЬКО ЕСЛИ ВЫРАЖЕН В ПРОЦЕНТАХ!!!
if (AccountStopoutMode==0)
  {
   double Marga = NormalizeDouble (MarketInfo( "EURUSD" , MODE_MARGINREQUIRED), 2 );
   double TickValue = NormalizeDouble (MarketInfo( "EURUSD" , MODE_TICKVALUE), 2 );
   int SL = 26 ; ////Пунктов
   double lotsShortNaVSE = NormalizeDouble (AccountBalance() / (level * Marga / 100.0 + SL * TickValue ), 2 );
  }

로트 수는 lotShortNaVSE를 초과할 수 없습니다.

SL ---- 오픈 포지션에서 손실 가능성이 있습니다.

또한 DC는 가능한 손실에 대한 자체 견해도 있습니다.

따라서 귀하 또는 DC에서 최대 수를 가져와야 합니다. 예를 들어, 현재 EURUSD 쌍의 DC는 SL = 26의 손실 가능성이 있습니다.

SL = MathMax (VashSLvPunktah, SLvPunktahUVashegoDillinga);
어쩌면 다른 옵션이 있습니까?
 
rlx :


또한 DC는 가능한 손실에 대한 자체 견해도 있습니다.

따라서 귀하 또는 DC에서 최대 수를 가져와야 합니다. 예를 들어, 현재 EURUSD 쌍의 DC는 SL = 26의 손실 가능성이 있습니다.

어쩌면 다른 옵션이 있습니까?


이것이 바로 이 DC 관점을 계산하는 방법입니다.

그러나 단기적으로는 다소 중요합니다.

 

저것들. 예를 들어 스톱로스가 5포인트인 경우입니다. 즉, 열린 로트의 수가 많이 계산됩니다.

그러나 그러한 위치를 여는 것은 작동하지 않습니다. DC에는 자체 위험 관리 시스템이 있습니다.

 
rlx :


이것이 바로 이 DC 관점을 계산하는 방법입니다.

그러나 단기적으로는 다소 중요합니다.


안녕하세요! 친절하게 도와주세요. 수동으로 거래 할 때 지정된 중지 및 이익을 자동으로 설정하는 스크립트가 필요합니다. 이것이 가능합니까? 가능하다면 링크를 제공하십시오.
 
Cmu4 :

아니오 .. 나는 당신이 제안한대로했습니다 - 동일하게 유지됩니다.

또한, 조건에 따라 열고 닫는 블록으로 분리하여 코드를 변경했습니다. 모두 하나. 나는 이미 무엇을해야할지 모르겠다.

다음은 예고편에 나오는 테스터의 고문인 테스터의 스크린샷입니다.

MACDAC 조건이 충족되는 한 주문은 매 틱마다 일괄적으로 열립니다.

조건에 추가
매수 포지션의 경우: 시장가 주문 매수가 없으면 여십시오...
매도 포지션의 경우: 매도 시장가 주문이 없으면 매도를 엽니다...

그리고 문제가 해결될 것입니다.