MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1735

 
anrei2002 # :

키워드 도움말!

이전에 썼던 것처럼: 이 지표는 이 포럼에서 마무리될 수 없다고 즉시 말하는 것이 좋습니다!

그리고 그게 다야 ... 그리고 이해합니다 .... 왜 그렇게 많은 슬래그가 쏟아 졌습니까 ???

바로 썼습니다.

고칠 수 없어 삐뚤어졌어..

제가 처음으로 쓴 글입니다. 당신은 보지 못했습니다 / 깨닫지 못했습니다 / 말도 안되는 것으로 간주했습니다.

당신이 여기에 흩어져 있는 슬래그를 당신에게 전달하려는 나의 시도를 생각한다는 사실은 나에게 불쾌감을 주는 것이 아니며, 나는 당신을 위해 노력하지 않았습니다. 표시기에 행운을 빕니다. 이 포럼이 마음에 들지 않으면 다른 포럼을 찾아보십시오.

 
Nikolay Ivanov # :

바로 썼습니다.

고칠 수 없어 삐뚤어졌어..

고칠 수는 있지만 8개의 극단적인 막대가 다시 그려집니다.

 
anrei2002 # :

키워드 도움말!

나는 당신을 도왔습니다 - 당신이해야 할 일을 썼습니다 - 그리고?)

당신은 그것을 무엇으로 만들었어요?

 
Taras Slobodyanik # :

고칠 수는 있지만 8개의 극단적인 막대가 다시 그려집니다.

이것에 대해서도 모든 것이 언급되었습니다 .. 또한 9 번째 막대에 즉시 신호를 줄 수 있으며 다시 그리기가 전혀 없을 것이라고 말했습니다 .. 그러나 그 사람은 이해하지 못합니다

타라스 슬로보디아닉   # :

나는 당신을 도왔습니다 - 당신이해야 할 일을 썼습니다 - 그리고?)

당신은 그것을 무엇으로 만들었어요?

그건 그렇고, 당신은 중재에 (어느 정도 확률로) 얻을 것입니다, 당신은 모든 것을 미리 말해야합니다 .. 그가 필요로하는 것은 예약 없이는 할 수 없습니다

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Nikolay Ivanov # :

이것에 대해서도 모든 것이 언급되었습니다 .. 또한 9 번째 막대에 즉시 신호를 줄 수 있으며 다시 그리기가 전혀 없을 것이라고 말했습니다 .. 그러나 그 사람은 이해하지 못합니다

그건 그렇고, 당신은 중재에 도착할 것입니다, 당신은 모든 것을 미리 말해야합니다 .. 그가 필요로하는 것은 예약 없이는 할 수 없습니다

여기서 할 수 있는 모든 것이 가능합니다. 사람은 다시 그리기에 동의하고 8개의 막대를 다시 표시합니다. 문제가 무엇입니까?

추신. 발산과 프랙탈도 과거에 나타나도 괜찮습니다.
 
Taras Slobodyanik # :

여기서 할 수 있는 모든 것이 가능합니다. 사람은 다시 그리기에 동의하고 8개의 막대를 다시 표시합니다. 문제가 무엇입니까?

그는 여분의 화살표를 "단순히"제거해야합니다. 그게 다입니다. 그리고 다시 그리거나하지 않고 그것을 수행하는 방법은 귀하의 작업입니다. 이것이 모든 차익 거래가 시작되는 방법입니다 :)

아직 TOR가 어떻게 공식화되지 않았느냐에 달려있지만, 어쨌든 위험을 무릅쓰고…

 
anrei2002 # :

키워드 도움말!

이전에 썼던 것처럼: 이 지표는 이 포럼에서 마무리될 수 없다고 즉시 말하는 것이 좋습니다!

그리고 그게 다야 ... 그리고 이해합니다 .... 왜 그렇게 많은 슬래그가 쏟아 졌습니까 ???

정확히. 당신이 하는 것을 도왔다는 것은 당신이 하고 있다는 의미이며, 누군가가 당신의 능력, 능력, 지식을 최대한으로 도와줍니다.

아무 것도 하지 않고 청하기만 하고 누군가 대신 해준다면 이곳은 좋은 사무실입니다.

내가 이 스레드를 만들 때 나는 위시리스트의 무료 생산이 아니라 정확히 도움을 주는 것을 의미했습니다.

 

친애하는 포럼 사용자 및 경험 많은 프로그래머 여러분, 안녕하세요! 어드바이저를 끝내는 데 도움이 필요합니다)) 플리즈, 어드바이저 코드에 2가지를 추가하는 방법을 알려주세요.

1. 상황은 다음과 같다 - 나는 TP와 SL 그리고 특정 로트(0.01로 하자)로 오더(1st)를 오픈한다. 이 주문이 이익실현으로 마감되면 아무 것도 변경되지 않습니다. 그러나 이(1차) 주문이 SL에 의해 마감되면 이(2차) 바로 다음 주문이 2배 증가하여 로트가 열립니다(0.01*2=0.02). 이 2차 주문이 이익실현으로 마감되면 다음 주문(3차)이 일반 로트로 열립니다. 2배 증가된 로트는 SL에 의해 이전 주문(1차)이 마감된 후 다음 주문(2차)에 대해서만 필요합니다. 3번째 주문에서 두 번째 연속으로 SL 마감이 있는 경우, 로트는 TP 마감이 있을 때까지 두 배로 유지됩니다. 추가해야 하는 논리를 자세히 설명했으면 합니다.


2. 그리고 두 번째로 추가할 것은 SL의 움직임입니다. 이제 구체적인 예를 들어 설명하겠습니다. 기본 매개변수가 TP + 300, SL - 500인 주문이 있다고 가정해 보겠습니다. 가격은 올바른 방향으로 가고 + 주문 개시 가격에서 100핍. 가격이 주문 개시 가격에서 +100에 도달하자마자 SL은 베이스 -500에서 +90으로 이동해야 합니다. 저것들. 가격이 주문 시가에서 + 100핍에 도달하면 S, L을 설정하여 주문을 손익분기점으로 전환합니다. +90핍으로. 그 후 가격이 올바른 방향으로 더 나아가 + 50핍을 더 통과하면 - SL이 50핍 이동 => 이제 주문 개시 가격에서 + 140핍에 있어야 합니다. 저것들. SL은 기본 위치에서 처음으로 주문 시가에서 +90핍 이동한 다음 +50핍 이동(-500 => + 90 => + 140 => + 190 등)하면 이동합니다. 따라서 가격이 TP에 도달하기 전에 또는 추세 움직임이 반전되어 SL을 녹아웃할 때 모든 것이 진행됩니다.


모든 것을 자세히 설명했기를 바랍니다. 도움이 되기를 진심으로 바랍니다. 이러한 누락된 요소를 추가하면 어드바이저가 준비됩니다.)) 질문이 있는 경우 - 질문))) 아래에 어드바이저 코드의 일부를 게시합니다.

 extern string s1                = "Main options" ;
extern string Symbol             = "" ;     
extern int timeframe            = 30 ;     
extern int MagicNumber          = 122122 ; 
//+------------------------------------------------------------------+
extern string s2                = "Trading options" ;
extern int BarsForConfirm       = 40 ;     
extern double Lot               = 0.01 ;       // размер лота: 0 - авт.расчет (свободная маржа/9000 => 100/5000=0.02 лота); любое другое число - фиксированный лот
extern int StopLoss             = 50 ;     // стоплосс (в пунктах)
extern int TakeProfit           = 30 ;     // тейкпрофит (в пунктах)
//+------------------------------------------------------------------+

bool OrderBuy = true , OrderSell = true , Trade = false ;  
int timeprev = 0 , Slip = 3.0 , Start, cnt= 1 , a;  
datetime newbar= 0 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (CheckForOpen()== 0 ) {a= 1 ; Trade = false ;}
   else
   if (CheckForOpen()== 1 ) {a= 0 ; Trade = false ;}
   else {Trade = true ;}
   if ( Digits == 3 || Digits == 5 ) // Пересчет для 5-ти знаков, работает автоматически
     {                                                    
      TakeProfit *= 10 ;
      StopLoss *= 10 ;
      Slip *= 10 ;
     } 
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  
  {
  
   if (CheckForOpen()==a) Trade = true ;
   if (newbar!=Time[ 0 ] && Trade== true )  
     {
       if (CheckForOpen()!=Start)        
        {Start=CheckForOpen(); cnt= 1 ;}
       else {cnt+= 1 ;}

       if (cnt==BarsForConfirm) {        
             
                
             
         if (CheckForOpen()== 0 )         
           {
             if ( OrderSend ( Symbol (),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "" ,MagicNumber, 0 ,Blue))
              { Print ( "BUY OK" );} else { Print ( GetLastError ());}
           } 
         if (CheckForOpen()== 1 )         
           {
             if ( OrderSend ( Symbol (),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "" ,MagicNumber, 0 ,Red))
              { Print ( "SELL OK" );} else { Print ( GetLastError ());}
           }
        }   
      newbar=Time[ 0 ];   //открытие ордера на цене открытия свечи
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lots()   // Расчет объема лота
  {
   double Lots;
   if (Lot> 0 ) return (Lot);           
   Lots=AccountFreeMargin()/ 9000 ;   // раcчёт лота - свободная маржа/9000 => 100/9000=0.01 лота 
   Lots= MathMin ( 15 , MathMax ( 0.01 ,Lots));
   if (Lots< 0.1 ) Lots= NormalizeDouble (Lots, 2 );
   else 
     {
       if (Lots< 1 ) Lots= NormalizeDouble (Lots, 1 );
       else        Lots= NormalizeDouble (Lots, 0 );
     }
   return (Lots);
  }
//+------------------------------------------------------------------+
 
MakarFX # :

잡다

매우 감사합니다. 바로 답장을 드리지 못해 죄송합니다. 주의가 산만해졌습니다.
실제로 그것을 시도하고 작은 문제를 발견했습니다 ...
USDX 기호에서 실행하는 경우에만 그립니다.
EURUSD에는 표시되지 않습니다(Symbol_2를 변경하고 있음이 분명합니다).
사진을 보면 거기가 더 명확할 수 있습니다.
왜 이런지, 어떻게 고칠 수 있는지 아이디어가 있습니까?
파일:
EURUSD.JPG  260 kb
USDX.JPG  318 kb
 

안녕하세요.

어리석은 질문에 대해 죄송합니다 ... 주문은 정상적으로 이루어졌으며 오류 129는 잘못된 가격 입니다. 이미 클리닉 ... 알아낼 수 있도록 도와주세요 ... ((


int f = OrderSend(para_2,OP_BUY,0.1,Ask_para_2,3,0,0,"",0,Blue); if(f < 0){Alert("매수 정지 주문 오류: ", GetLastError());}

사유: