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

 
아르테미스 대단해!!!
 
Roman. :


1. 모두를 위해 - 페이지의 7번째 게시물에서 내 링크에 대한 모든 정보를 읽으십시오.

2. 귀하의 질문에 대한 예고편을 보십시오. 두 번째 파일은 내가 전략 옵티마이저로 작업한 예이며 현재 차트에 있는 종속성은 Recovery Factor에서 최적화한 결과 얻은 TS의 중지 및 이익 값입니다. 나는 최근에 그것을 스스로 사용합니다. 나는 여전히 그것을 스스로 이해하고 있으므로 모든 질문은 저자를 위한 것입니다. 포스트를 통해 홈페이지를 확인해보세요.

3. 모든 것, IMHO.


오, 멋지다!! 제 생각에는 이 프로그램을 Esel이라고 합니까? 어떻게 사용하고 어떻게 저장합니까?
 

얘들아, 나는 이 모든 면에서 완전히 멍청하지만 이런 식으로 행동 하는 고문을 작성하는 방법을 도와주세요. 먼저 매수 주문을 열고 이익을 취하고 손절매를 한 다음 이익을 볼 때 이 주문이 닫히면 가 트리거되면 동일한 구매 주문이 열리고 손절매가 트리거될 때 닫히면 이미 판매 중인 것입니다.
 
Excel에서 결과를 저장하는 방법? 테스터에서 모두 저장을 클릭하고 Excel을 찾아 열고 흰색 배경에 붙여 넣기를 클릭했지만 아무 일도 일어나지 않았습니다. 곧 동생이 와서 강제로 쫓아낼지도 몰라요 컴퓨터 때문에.
 
dkfl.zrjdktdbx :
Excel에서 결과를 저장하는 방법? 테스터에서 모두 저장을 클릭하고 Excel을 찾아 열고 흰색 배경에 붙여 넣기를 클릭했지만 아무 일도 일어나지 않았습니다. 곧 동생이 와서 강제로 쫓아낼지도 몰라요 컴퓨터 때문에.
두 번째 컴퓨터를 구입하시겠습니까?
 
언젠가..
 
dkfl.zrjdktdbx :
Excel에서 결과를 저장하는 방법? 테스터에서 모두 저장을 클릭하고 Excel을 찾아 열고 흰색 배경에 붙여 넣기를 클릭했지만 아무 일도 일어나지 않았습니다. 곧 동생이 와서 강제로 쫓아낼지도 몰라요 컴퓨터 때문에.

모든 것을 복사하여 붙여넣으십시오. 열 이름을 직접 작성하기만 하면 됩니다. 수익성은 저에게 몇 달로 환산됩니다.
 
dkfl.zrjdktdbx :

오, 멋지다!! 제 생각에는 이 프로그램을 Esel이라고 합니까? 어떻게 사용하고 어떻게 저장합니까?

Microsoft Office - Excel에 대한 그녀의 도움말 및 설명서를 읽어보십시오... :-)
 

동지 여러분, 최근에 저는 고문이 전략 테스터 와 완전히 다른 방식으로 실제 계정에서 작동하는지 질문했습니다. 고문 자체의 코드가 없으면 알아낼 방법이 없다고 하셨습니다. 나는 코드를 게시합니다 :

간단히 설명하면 Expert Advisor는 Martingale 원칙에 따라 작동합니다. 즉, 이전 거래가 성공적이지 않은 경우 이중 로트로 열립니다. 3번 이상 틀리면 플랫이 시작되었다고 믿고 로트의 크기를 변경하고 스톱하지만, 마치 어드바이저가 여전히 다른 방향으로 더블 로트로 여는 것처럼 비례합니다.

모든 것이 좋았다면 하나의 로트로 같은 방향으로 열립니다. 여기 문제가 있습니다. 테스터에서는 모든 것이 잘 작동하지만 실제 계정에서 그는 0.24(이러한 숫자는 스위치 기능에 설정되어 있음)로 구매하기 위한 두 번째 거래를 엽니다... 도와주세요... 정말 실생활에서 시도하고 싶다면 이 장애로 인해 데모 계정에서 벗어날 수 없습니다 =(

 //+------------------------------------------------------------------+ 
//| StMartin++.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

     extern int TP = 1000 ; 
     extern int TS = 1000 ; 
     extern double lots = 0.1 ; 

     double volumz; 
     int ticket,total; 
     int slip = 3 ; 
     int Magic = 4 ; 


     static int CriticalTicket = 0 ; 

     int TicketArray[ 4 ]; //миссив с тикетами
     int CTicketArray[ 10 ]; //массив с критическими тикетами

     void FormTicket( int number) //объявил шаблон под функцию запоминания тикетов 
    { 
       for ( int i= 3 ;i> 0 ;i--) 
      { 
         TicketArray[ 0 ] = ticket; 
         if (TicketArray[ 0 ]> 0 && TicketArray[ 0 ] == TicketArray[ 1 ]) break ; 
         TicketArray[i] = TicketArray[i- 1 ]; 
      } 
    } 
    
     void FormCriticalTicket( int number1) //сюда записываю критическме тикеты
    { 
       for ( int i= 9 ;i> 0 ;i--) 
      { 
         CTicketArray[ 0 ] = CriticalTicket; 
         if (CTicketArray[ 0 ]> 0 && CTicketArray[ 0 ] == CTicketArray[ 1 ]) break ; 
         CTicketArray[i] = CTicketArray[i- 1 ]; 
      } 
    }  


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 
     if ( OrdersHistoryTotal ()== 0 ) 
     { 
        ticket = OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , "First order" ,Magic, 0 , Yellow ); //открываем первый ордер 
     } 
//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
FormCriticalTicket(CriticalTicket); //вызываем функцию, что запоминала критические тикеты
int CritLot = crit(); //функция берет минимальное значение из массива критических тикетов
int OrderTimeCheck = check3(); //проверяем, закрыт ли ордер 
bool OrderCloseCheck = check2(OrderTimeCheck); //проверяем, закрылись ли ордера в минус 
FormTicket(ticket); //вызываем функцию, чтоб запоминала тикеты 
OrderOpenFunction(OrderCloseCheck,CritLot); //тут открываем ордера 

//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 


int crit()
{
   return ( ArrayMinimum (CTicketArray, 6 , 1 ));
}

int check3() //проверяем, закрыт ли ордер 
{ 
   OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET); 
   if ( OrderClosePrice ()== OrderTakeProfit ()) 
      { 
         CriticalTicket= 0 ;
      } 
   if ( OrderCloseTime ()> 0 ) return ( 100 ); 
} 

bool check2( int OrderTimeCheck) //проверяем, если ордер закрыт, то последние 3 закрытых ордера были ли убыточными? 
{ 
   if (OrderTimeCheck == 100 ) 
   { 
       bool flag = true; 
       for ( int j= 1 ;j< 4 ;j++) 
      { 
         OrderSelect (TicketArray[j],SELECT_BY_TICKET); 
         if ( OrdersHistoryTotal ()> 2 ) 
         { 
             if ( OrderClosePrice ()!= OrderStopLoss ()) 
            { 
               flag = false; 
            } 
         } 
         if ( OrdersHistoryTotal ()<= 2 ) 
         { 
            flag = false; 
         } 
      } 
       return (flag); 
   } 
   else
       return (false); 
} 

void OrderOpenFunction( bool OrderCloseCheck, int CritLot) 
{ 
   total = OrdersTotal ();
   if (OrderCloseCheck==true)
   {
       int TP1,TS1;
       double m1,m2,m3,m4,m5,m6;
      m1= 1.2 ;
      m2= 1.25 ;
      m3= 2.0 ;
      m4= 1.0 ;
      m5= 1.25 ;
      m6= 1.0 ;
   
       OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET); 
       switch (CritLot)
      {
         case 1 : volumz = ( OrderLots ()* 2 )*m1;
                  TP1=TP/m1;
                  TS1=TS/m1; 
                   break ;
         case 2 : volumz = ( OrderLots ()* 2 )*m2/m1;
                  TP1=TP/m2;
                  TS1=TS/m2; 
                   break ;
         case 3 : volumz = ( OrderLots ()* 2 )*m3/m2;
                  TP1=TP/m3;
                  TS1=TS/m3; 
                   break ;
         case 4 : volumz = ( OrderLots ()* 2 )*m4/m3;
                  TP1=TP/m4;
                  TS1=TS/m4;
                   break ;
         case 5 : volumz = ( OrderLots ()* 2 )*m5/m4;
                  TP1=TP/m5;
                  TS1=TS/m5;
                   break ;
         case 6 : volumz = ( OrderLots ()* 2 )*m6/m5;
                  TP1=TP/m6;
                  TS1=TS/m6;
                   break ;
      }

       if (total < 1 ) 
      { 
         if ( OrderType ()==OP_SELL) 
         { 
             double lot3 = volumz; 
            ticket = OrderSend ( Symbol (),OP_BUY,lot3,Ask,slip,Bid-TS1* Point ,Bid+TP1* Point , 0 ,Magic, 0 , Green ); 

             if (ticket> 0 ) 
            { 
               CriticalTicket = ticket; 
            } 
         } 
         if ( OrderType ()==OP_BUY) 
         { 
             OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET); 
             double lot4 = volumz; 
            ticket = OrderSend ( Symbol (),OP_SELL,lot4,Bid,slip,Ask+TS1* Point ,Ask-TP1* Point , 0 ,Magic, 0 , Red ); 

             if (ticket> 0 ) 
            { 
               CriticalTicket = ticket; 
            } 
         } 
      } 
   }   
   if (OrderCloseCheck==false) 
   { 
       if (total < 1 ) 
      { 
         OrderSelect (TicketArray[ 1 ],SELECT_BY_TICKET); 
         volumz = OrderLots (); 
         if ( OrderClosePrice () == OrderStopLoss ()) 
         { 
             if ( OrderType () == OP_BUY) 
            { 
               double lot1 = volumz* 2 ; 
               ticket = OrderSend ( Symbol (),OP_SELL,lot1,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Red ); 
            } 
             if ( OrderType () == OP_SELL) 
            { 
               double lot2 = volumz* 2 ; 
               ticket = OrderSend ( Symbol (),OP_BUY,lot2,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Green ); 
            } 
         } 
         if ( OrderClosePrice () == OrderTakeProfit ()) 
         { 
             if ( OrderType () == OP_BUY) 
            { 
               ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Green ); 
            } 
             if ( OrderType () == OP_SELL) 
            { 
               ticket = OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Red ); 
            } 
         } 
      } 
   } 
} 

모든 설명이 반영되어 있습니다... 추가설명이 필요하시면 성의껏 안내해 드리겠습니다.

 
안녕하세요 여러분 새해 복 많이 받으세요. 얘들아 도와줘 한 번만 주문하는 건 어쩔 수 없어 조건만 맞으면 주문하고 이미 주문이 있으면 두 번 하면 안 돼. 가능하다면 예시.