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

 
doon :

어드바이저가 특정 시간에 매수 또는 매도하도록 하는 방법( sleep 을 사용하지 않음)?

날짜-시간 함수가 도움이 될 것입니다: https://book.mql4.com/ru/functions/datetime
 
Fam :
날짜-시간 함수가 도움이 될 것입니다: https://book.mql4.com/ru/functions/datetime

감사합니다. 하지만 여전히 거기에 전표를 넣어야 합니다.

 
사람들! 리스크에 따라 많이 매매를 하려고 노력중입니다.... 글쎄요, 잘 안되네요.... 씁니다.
 EURUSD,M15: OrderSend error 4051

어디가 잘못되었는지 알려주세요...

 void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend ( Symbol (),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC, 0 ,clOpenBuy); 
   if (UseSound) PlaySound (NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend ( Symbol (),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC, 0 ,clOpenSell); 
   if (UseSound) PlaySound (NameFileSound); 
} 
string GetCommentForOrder() {   return (Name_Expert); } 
double GetSizeLot() { 
   double ldlot=Lots;
   int     orders=HistoryTotal();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
   ldlot= NormalizeDouble (AccountFreeMargin()*MaximumRisk/ 1000.0 , 1 );
   if (DecreaseFactor> 0 )
     {
       for ( int i=orders- 1 ;i>= 0 ;i--)
        {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)==false) { Print ( "Error in history!" ); break ; }
         if (OrderSymbol()!= Symbol () || OrderType()>OP_SELL) continue ;
         if (OrderProfit()> 0 ) break ;
         if (OrderProfit()< 0 ) losses++;
        }
       if (losses> 1 ) ldlot= NormalizeDouble (ldlot-ldlot*losses/DecreaseFactor, 1 );
     }
   if (ldlot< 0.1 ) ldlot= 0.1 ;
                         } 
double GetStopLossBuy() {       return (Bid-sStopLoss* Point );} 
double GetStopLossSell() {       return (Ask+sStopLoss* Point ); } 
double GetTakeProfitSell() {     return (Bid-sTakeProfit* Point ); } 
double GetTakeProfitBuy() {     return (Bid+sTakeProfit* Point ); } 

return ( 0 );
 
Vinin :

여기를보십시오 https://www.mql5.com/ru/forum/103774

모두 감사합니다 한번 해보겠습니다...
 
charter :

나는 이것이 시계열에 대해서만 사실이라고 생각합니다.

제 경우에는 찌를 곳도 없습니다.

당신의 생각이 맞습니다. 어떻게든 주문을 늘려야 하는데 어떻게 해야할지 모르겠어


걱정하지 마세요, 작동합니다
 
Vovo4ka :
사람들! 리스크에 따라 많이 매매를 하려고 노력중입니다.... 글쎄요, 잘 안되네요.... 씁니다.

어디가 잘못되었는지 알려주세요...


로트에 줄을 놓는 것을 잊었다
 return (ldlot);
 
todem :

로트에 줄을 놓는 것을 잊었다

정확히 ...... 잊고 .... ATP 크 .... 그렇지 않으면 이미 20 번 확인했습니다. 도대체 무엇을 이해할 수 없었습니다 ..))
 

requot+slippage에 대한 질문에 도움이 됩니다.

상황은 다음과 같습니다 - Expert Advisor로 거래 주문을 보냈습니다. Slippage=3pt, error 138 Requote가 발생합니다. 나는 RefreshRates()를 수행하고 새로운 Ask로 다시 시도하지만 서버에서 가격은 이미 내가 보낸 Ask(RefreshRates() 이후 두 번째)보다 낫고 논리적으로 동의해야 하지만 서버의 가격 편차가 응용 프로그램의 Slippage 크기보다 크다는 사실 - 그러한 응용 프로그램은 거부됩니다. (((

그러한 상황을 어떻게 통제할 수 있습니까? 저것들. 서버에서 가격이 더 나은 경우 Slippage를 따로 이동하여 서버에서 애플리케이션을 수락하도록 합니다. 아니면 불가능합니까?

 
ZZZEROXXX :

requot+slippage에 대한 질문에 도움이 됩니다.

상황은 다음과 같습니다 - Expert Advisor로 거래 주문을 보냈습니다. Slippage=3pt, error 138 Requote가 발생합니다. 나는 RefreshRates()를 수행하고 새로운 Ask로 다시 시도하지만 서버에서 가격은 이미 내가 보낸 Ask(RefreshRates() 이후 두 번째)보다 낫고 논리적으로 동의해야 하지만 서버의 가격 편차가 응용 프로그램의 Slippage 크기보다 크다는 사실 - 그러한 응용 프로그램은 거부됩니다. (((

그러한 상황을 어떻게 통제할 수 있습니까? 저것들. 서버의 가격이 더 좋다면 Slippage를 분리하여 서버에서 애플리케이션을 수락하도록 합니다. 아니면 불가능합니까?


미끄러짐을 늘립니다. 빠른 시장에서 거래가 열린 것 같습니다. 동일한 Eurobucks가 1-2 틱 만에 중요한 뉴스가 나온 후 발생하는 경우가 있습니다. 이는 악몽일 뿐입니다. 그리고 서버가 어드바이저의 주문을 처리하는 동안 가격은 매우 가파르게 변합니다.
 
Zhunko :
MT4에는 컨버터가 내장되어 있습니다. 서비스 -> 견적 아카이브 .

고맙습니다! 그러나 목표는 이것이다. 대체된 일일 막대(촛대)는 견적을 받으면 업데이트되고 차트는 일반 차트처럼 작동합니다. 다른 지표, 조언자를 매달고 채널, 레벨 등을 구축할 수 있습니다. 비표준 시간 프레임과 같아야 합니다. 비표준은 터미널 시간에 대한 막대(양초)의 이동입니다. H4 - -3, -2, -1, 1, 2 또는 3시간; D1 - -23, -22, ... 1, 2, ... 또는 23시간; W1 - -6, -5, ... 또는 6일 등. 오프셋은 표시기의 입력 매개변수에 지정되어야 합니다.

그런게 있나요?

미리 감사드립니다.