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

 
Artyom Trishkin :

이 시간[i]부터 시간을 분리해야 합니다.

마찬가지로 시간 10:05:00 및 22:10:00이 인쇄물에 표시되고 다른 시간은 허용된 제한을 벗어납니다.

5시부터 11시까지 인쇄하면 안되고...

 for ( int i=limit- 2 ; i> 0 ; i--) 
     {
     if ( TimeHour (time[i])>= 17 && TimeHour (time[i])<= 11 ) continue ;
       if (i% 2 == 0 ) 
        {
         if (open[i]<close[i] && open[i+ 1 ]>close[i+ 1 ]) 
           {
            k1++;
             if (k1>max) {max=k1; dat_max=time[i];}
             if (k1>= 4 ) Print ( "Num: " ,k1, "dat_max " ,time[i]);
            SetText( "Obj_" +( string )time[i],( string )k1,time[i],high[i],Arr);
           }
         else k1= 0 ;
         
           } else {
         if (open[i]<close[i] && open[i+ 1 ]>close[i+ 1 ]) 
           {
            k2++;
             if (k2>max){ max=k2; dat_max=time[i];}
             if (k2>= 4 ) Print ( "Num: " ,k2, "dat_max " ,time[i]);
            SetText( "Obj_" +( string )time[i],( string )k2,time[i],high[i],Arr);
           }
         else k2= 0 ;
         
        }
      
     }

   Comment ( "Max: " ,max, "dat_max " ,dat_max, " rates_total " ,rates_total);

 
if(TimeHour(time[i])>=17 || TimeHour(time[i])<=11)continue;
 
Taras Slobodyanik :

고맙습니다.

 
k_chens :

안녕하세요! 도와주세요, 제발! 로트 수에 대한 컨트롤을 작성하려고 합니다. 내 계정이 +10% 이익이 되면 랏이 두 배로 늘어납니다. +20%이면 lot*4입니다. 계정이 감소하면 그에 따라 로트 크기도 감소합니다. 나는 Lot_New가 각각의 새로운 거래에 대해 새로운 가치를 갖도록 하는 방법을 이해하지 못합니다.

이것은 프로그래밍을 막 배우기 시작한 사람에게 결코 쉬운 일이 아닙니다. 실제로 그것을 해결하기 위해서는 저울의 다음 가치를 보존하는 것을 통제하는 메커니즘에 대해 생각할 필요가 있습니다. 또한 이 값을 저장할 위치를 파악해야 합니다. 프로그램 변수는 이에 적합하지 않습니다. 예를 들어 전역 터미널 변수 를 사용하거나 파일에 쓸 수 있습니다. 그것은 모두 프로그램을 어디에서 어떻게 사용할 계획인지에 달려 있습니다.

가장 보편적인 솔루션(프로그램 사본 간에 데이터를 전송할 가능성 없이 다른 컴퓨터에서 프로그램을 사용하려는 경우)은 프로그램의 결과로 받은 손익을 계산하기 위해 계정 기록을 스캔하는 것입니다. 그러나 그때에도 기준점을 선택하는 문제가 발생합니다(계산할 잔액의 값을 가져올 위치).

 
안녕하세요, 마술사 선택 라인을 설명해 주세요.

외부 bool 핸드 오더 =true ;
외부 int Magic_Number = 7777;
//첫 줄
((OrderMagicNumber()==Magic_Number && hand_orders==false) || (OrderMagicNumber()==0 && hand_orders==true)))

//두 번째 줄
(OrderMagicNumber()==Magic_Number || (OrderMagicNumber()==0 && hand_orders==true)))


그들은 어떤 마법의 가치를 놓치고 있습니까? 써주세요
 
Tigerfreerun :
안녕하세요, 마술사 선택 라인을 설명해 주세요.

외부 bool 핸드 오더 =true ;
외부 int Magic_Number = 7777;
//첫 줄
((OrderMagicNumber()==Magic_Number && hand_orders==false) || (OrderMagicNumber()==0 && hand_orders==true)))

//두 번째 줄
(OrderMagicNumber()==Magic_Number || (OrderMagicNumber()==0 && hand_orders==true)))


그들은 어떤 마법의 가치를 놓치고 있습니까? 써주세요

표현식에서 &&를 "AND AT THE SAME TIME"으로 바꾸고 || 단어 "OR"로 교체

결과를 읽을 때 그것이 무엇이며 어떻게 작동하는지 명확해야 합니다.


첫 번째 줄은 magic=7777(hand_orders=false 사용) 또는 magic=0(hand_orders=true 사용)으로 작동합니다.

두 번째 줄은 항상 magic=7777에서 작동하고 hand_orders=true에서는 magic=0과 함께 추가로 작동합니다.

 

하나의 기능에서 두 개의 도구에 대한 포인트로 이익을 계산하는 방법은 무엇입니까?

나는 비틀어

 double Punkts_B( string Sy_1= "" , string Sy_2= "" , int _Mag=- 1 )
  {
   double xxx= 0 ;
   bool bw;
   for ( int t= 0 ;t<= OrdersTotal ();t++)
     {
      bw= OrderSelect (t, SELECT_BY_POS , MODE_TRADES );
       if ( OrderSymbol ()==Sy_1 || OrderSymbol ()==Sy_2
         && OrderMagicNumber ()==_Mag
         && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ))
         xxx= OrderClosePrice ()- OrderOpenPrice ();
       RefreshRates ();
     }
   return (xxx);
  }
 
PolarSeaman :

하나의 기능에서 두 개의 도구에 대한 포인트로 이익을 계산하는 방법은 무엇입니까?

나는 비틀어

 int Punkts_B( string Sy_1= "" , string Sy_2= "" , int _Mag=- 1 )
  {
   int xxx = 0 ;
   double tickValue_1 = SymbolInfoDouble (Sy_1, SYMBOL_TRADE_TICK_VALUE ),
          tickValue_2 = SymbolInfoDouble (Sy_2, SYMBOL_TRADE_TICK_VALUE );
   for ( int t= 0 ;t< OrdersTotal ();t++)
     {
       if ( ! OrderSelect (t, SELECT_BY_POS , MODE_TRADES ) )   continue ;
       if ( OrderSymbol ()!=Sy_1 && OrderSymbol ()!=Sy_2 ) continue ;
       if ( OrderMagicNumber ()!=_Mag )                   continue ;
       if ( OrderType ()!= OP_BUY && OrderType ()!= OP_SELL ) continue ;
      xxx+=( int )(( OrderProfit ()+ OrderSwap ()+ OrderCommission ())/( OrderSymbol ()==Sy_1 ? tickValue_1 : tickValue_2));
     }
   return (xxx);
  }
 
Konstantin Nikitin :
서로 다른 두 악기의 포인트를 추가할 수 없습니다.
 
Maxim Kuznetsov :
서로 다른 두 악기의 포인트를 추가할 수 없습니다.

그는 포인트로 질문했습니다. 여기에 포인트가 있습니다. 그런 다음 그가 생각하게하십시오 =)