포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 221

 
penzacity :

포럼에서 이것이 가능하다는 것을 발견했습니다: https://www.mql5.com/ru/forum/141467

그리고 틱 에뮬레이터를 찾는 것이 좋습니다.

즉, MQL4를 사용하면 주말에 틱 시뮬레이션을 구현할 수 없습니다???

해당 페이지에서 게시물에 게시한 링크입니다. 거기에서 더 자세히 읽으십시오.
 
artmedia70 :
해당 페이지에서 게시물에 게시한 링크입니다. 거기에서 더 자세히 읽으십시오.

예, 저는 바보입니다. start()가 필요합니다. init(){}를 통해 추가로 실행...

int 초기화(){시작();}

...

무효 시작(){...}

덕분에 알았습니다.

 
Yyyy ... tupanul so tupanul)))) 정말 명확 하지 않은지, 허영심에서 init(), deinit() 및 start() 기능을 만지지 마십시오. 큰 메타쿼타가 주문한 대로만)))
 
보너스를 돈으로 교환하는 방법?
 
Alexs65 :
보너스를 돈으로 교환하는 방법?

누구의 보너스?
 

다음 코드가 있습니다.

extern datetime 시작 = D'2013.10.17 23:59';

정수 시작()

{

int b1=iBarShift( 심볼() ,0,시작,0);

더블 hb=iHigh(Symbol(),0,b1); //지정된 날짜의 막대

이중 hb2=iHigh(Symbol(),0,b1-1); //지정된 날짜에서 내일을 바

지정된 날짜부터 어제 쓰는 방법을 알려주세요. 그렇지 않으면 double hb3=iHigh(Symbol(),0,b1+1); 작동하지 않습니다...

 

여보세요!!! 내 고문이 무브먼트에 대한 명령을 엽니다. 변경하는 방법 또는 변경할 위치를 알려주세요???

문자열 GLOB_START;

정수 초기화()
{
GLOB_START = "@" + DoubleToStr(ID,0) + "@" + "_start";
if ( !GlobalVariableCheck( GLOB_START ) )GlobalVariableSet(GLOB_START,TimeCurrent());
리턴(0);
}

정수 초기화()
{
스위치( 초기화되지 않은 이유() )
{
사례 REASON_REMOVE: delete_glob ( "@" + DoubleToStr(ID,0) + "@" );
}
if ( IsTesting() )delete_glob ( "@" + DoubleToStr(ID,0) + "@" );
리턴(0);
}

무효 delete_glob (문자열 c)
{
정수 나;
for ( i = GlobalVariablesTotal()-1; i>= 0 ; i-- )if ( StringFind(GlobalVariableName(i),c) >= 0 )GlobalVariableDel(GlobalVariableName(i));
}

정수 시작()
{
주석(정보());
int KOL_BUY = order_total(0);
int KOL_SELL = order_total(1);
더블 엘;

if ( order_total() == 0 )
{
오픈(0,랏,0,TP);
오픈(1,랏,0,TP);
}

if ( KOL_BUY == 0 && KOL_SELL != 0 )
{
오픈(0,랏,0,TP);
내가 = last_trade(1);
오픈(1,1,0,0);
수정 주문(1);
}

if ( KOL_BUY != 0 && KOL_SELL == 0 )
{
오픈(1,랏,0,TP);
내가 = last_trade(0);
오픈(0,1,0,0);
수정 주문(0);
}

리턴(0);
}

문자열 정보()
{
정수 나;
이중 버프_1 = 0, 버프_2 = 0, 버프_3 = 0;
문자열 res = "\n";

for( i = OrdersHistoryTotal() - 1, i >= 0, i--)
{
주문 선택(i,SELECT_BY_POS,MODE_HISTORY);
if( OrderMagicNumber() == ID )
{
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,0) )buff_1 += OrderProfit();
if ( OrderOpenTime() >= iTime(NULL,PERIOD_D1,1) && OrderOpenTime() < iTime(NULL,PERIOD_D1,0) )buff_2 += OrderProfit();
if ( OrderOpenTime() >= GlobalVariableGet(GLOB_START) )buff_3 += OrderProfit();
}
}

res = res + "예금 통화의 이익 " + TimeToStr(iTime(NULL,PERIOD_D1,0)) + ": " + DoubleToStr(buff_1,0) + "\n" + "\n";
res = res + "예금 통화의 이익 " + TimeToStr(iTime(NULL,PERIOD_D1,1)) + ": " + DoubleToStr(buff_2,0) + "\n" + "\n";
res = res + "예금 통화 총 이익: "+ DoubleToStr(buff_3,0) + "\n";
반환(res);
}

무효 modify_orders( 정수 유형 )
{
정수 나;
datetime time_last = 0, time_first = TimeCurrent();
이중 SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, 레벨;

for( i = OrdersTotal() - 1, i >= 0, i-- )
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == 유형)
{
if ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}


if ( 유형 == 0 ) 레벨 = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
if ( 유형 == 1 ) 레벨 = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);

for( i = OrdersTotal() - 1, i >= 0, i -- )
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == 유형 && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),level,0 );
}
}

이중 last_trade( int t )
{
정수 나;
이중 해상도 = -1;
날짜 시간 = 0;

for(i=OrdersTotal()-1;i>=0;i--)
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if(OrderOpenTime()>time && OrderMagicNumber()==ID && OrderType() == t)
{
res = OrderLots();
시간 = OrderOpenTime();
}
}
if (승수)return(res * Lot_koeff);
if ( !multiplier )return(res + Lot_koeff);
}
int open(int 유형, 이중 l, 이중 sl=0, 이중 tp=0, 문자열 통신 = "")
{
int isOpened = 0, 시도 = 0;
더블 s,t;
동안 ( IsTradeContextBusy() ){Sleep(500);}
새로 고침();
if ( sl != 0 && sl < MarketInfo(Symbol(),MODE_STOPLEVEL) )sl = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( tp != 0 && tp < MarketInfo(Symbol(),MODE_STOPLEVEL) )tp = MarketInfo(Symbol(),MODE_STOPLEVEL);
if ( 유형 == 0 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 질문 + tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 입찰가 - sl * 포인트;
}
if ( 유형 == 1 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 입찰가 - tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 묻다 + sl * 포인트;
}
s = NormalizeDouble(s, 자릿수);
t = NormalizeDouble(t, 자릿수);
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
수면(500);
동안(isOpened<0)
{
동안 ( IsTradeContextBusy() ){Sleep(500);}
새로 고침();
if ( 유형 == 0 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 입찰가 + tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 입찰가 - sl * 포인트;
}
if ( 유형 == 1 )
{
if (tp == 0)t = 0;
if ( tp != 0 )t = 질문 - tp * 포인트;
if ( sl == 0 )s = 0;
if ( sl != 0 )s = 묻다 + sl * 포인트;
}
s = NormalizeDouble(s, 자릿수);
t = NormalizeDouble(t, 자릿수);
시도++;
if(type==0)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Ask,Digits),10,s,t,comm,ID);
if(type==1)isOpened = OrderSend(Symbol(),type,check_lot(l),NormalizeDouble(Bid,Digits),10,s,t,comm,ID);
if(시도 > 5) 중단;
if(isOpened>=0) break;
수면(500);
}
if(isOpened<0) Alert("주문이 열리지 않았습니다. 오류:", GetLastError());
반환(isOpened);
}

int order_total( int type_1 = -1, int type_2 = -1 )
{
정수 나;
intcol=0;
for(i=OrdersTotal()-1;i>=0;i--)
{
주문 선택(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==ID && (OrderType() == type_1 || OrderType() == type_2) )kol++;
if(OrderMagicNumber()==ID && type_1 == -1 && type_2 == -1 )kol++;
}
반환(열);
}

이중 check_lot(이중 &lo)
{
더블 l = MarketInfo(Symbol(),MODE_LOTSTEP);
정수 확인 = 0;
동안 ( l < 1 ){l*=10;ok++;}
if( lo < MarketInfo(Symbol(),MODE_MINLOT) )lo = MarketInfo(Symbol(),MODE_MINLOT);
if( lo > MarketInfo(Symbol(),MODE_MAXLOT) )lo = MarketInfo(Symbol(),MODE_MAXLOT);
return(NormalizeDouble(lo,ok));

 
모두에게 좋은 하루. 여러분, 질문이 있습니다. 알려주세요. Alpari 및 Master_Forex와 함께 작업하는 경우 작업 터미널에서 다운로드한 스토리에 대해 EA를 테스트합니다. Tick Data Suite와 같은 내 DS의 터미널로 90% 시뮬레이션, 특히 Alpari 또는 Master_Forex, 방법을 사용하여 ....... 다양한 조건 및 매개변수에서 반년 동안 테스트한 후 최상의 것을 선택한 다음 다시 테스트 그리고 다음 6개월까지 2-5g이 지나면 모든 것이 무리를 이루고 올빼미가 준비됩니다. 신뢰할 수 있는 수입원이 될 수 있습니까? 아니면 여전히 99%와 그에 연결된 모든 것이 필요합니까?
감사해요!!! ........
 

"Equity:"(AccountEquity())에 대한 후행을 만드는 방법은 무엇입니까?

옵션

외부 이중 TrailingStart = 10000; // 트롤의 시작 레벨
extern 이중 후행 정지 = 100; // 트롤 크기
외부 이중 TrailingStep = 10; // 트롤 단계

 

연속으로 두 개의 위/아래 프랙탈을 찾는 방법은 무엇입니까? 아래 그림.

지표를 쓰려고 했는데 생각이 안나네요.

 //+------------------------------------------------------------------+
//|                                           Dvigubas fraktalas.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_buffers 1

double FRACTAL[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle( 0 , DRAW_ARROW );
   SetIndexArrow( 0 , 119 );
   SetIndexBuffer ( 0 ,FRACTAL);
   SetIndexLabel( 0 , "Fractal" );
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int     counted_bars=IndicatorCounted();
//----
   int limit;
   
   
   
//---- последний посчитанный бар будет пересчитан
   if (counted_bars > 0 ) 
       counted_bars--;
   limit = Bars - counted_bars;
//---- основной цикл
   for ( int i = limit; i > 0 ; i--)
     {           
         int f1 = GetFractal( "" , 0 , 0 );
         int f2 = GetFractal( "" , 0 , 1 );
         
         if ( f1 == 1 && f2 == 1 ) FRACTAL[i] = High[i]+ 100 * Point ;
         else 
         if ( f1 == 0 && f2 == 0 ) FRACTAL[i] = Low[i]- 100 * Point ;
     }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
        |
//+----------------------------------------------------------------------------+
int GetFractal( string sy= "0" , int tf= 0 , int nf= 0 ) 
{
   if (sy== "" || sy== "0" ) sy= Symbol ();
   int f=- 1 ;
   int     i, k=iBars(sy, tf), kf;
   for (i= 3 ; i<k; i++) 
  {
     if ( iFractals (sy, tf, MODE_UPPER, i)> 0 )f= 1 ;
     else
       if ( iFractals (sy, tf, MODE_LOWER, i)> 0 )f= 0 ;
    kf++;
     if (kf>nf) return (f);    
  }
  
}

아니면 누군가가 그러한 지표가 준비된 것을 보았습니까?