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

 
okidoki543 :
누군가가 나를 돕고 싶다면(위 참조), 나는 협력을 위해 열려 있습니다.
상업적으로 - 의심의 여지 없이, 기꺼이 도움을 줄 사람들이 줄을 섰을 것입니다. 그래서 ... 스스로 쓰기 시작하면 도움이 올 것입니다.
 
Ekburg :

sl을 OrderStopLoss()로 교체


도움이되지 않았습니다 ...

 void VirtualTral( int Dist_Tral, int Start_Tral, int Magic, int SL)
{

double dist=Dist_Tral;
double start=Start_Tral;
double priceopen= OrderOpenPrice ();
double sl= OrderStopLoss ();
 
if ( OrdersTotal ()<= 0 )
ObjectDelete ( "Stop" ); 

int i, k= OrdersTotal ();

   for (i=k- 1 ; i>= 0 ; i--) 
   {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
     {  

       if (( NormalizeDouble (priceopen+start* Point , Digits )<= Bid )&&( NormalizeDouble ( Bid -sl* Point , Digits )> NormalizeDouble (dist* Point , Digits )))
         {                    
                sl= NormalizeDouble ( Bid -dist* Point , Digits );
                 Print (+sl);
                 ObjectCreate ( "Stop" , OBJ_HLINE , 0 , D'2013.02.20 12:30' ,sl);                                                         
                 ObjectSet ( "Stop" , OBJPROP_STYLE , 1 );                                                                                         
                 ObjectMove ( "Stop" , 0 , D'2013.02.20 12:30' ,sl);                                                                                                 
                 if ( NormalizeDouble (sl* Point , Digits ) >= Bid )
             {
                 Print ( "Закрываем" );
                 OrderClose ( OrderTicket (), OrderLots (), Bid , 50 ,Blue);
             }
         }               
      }
   }
}

작동해야 하는 것처럼 보이지만 누락된 것이 있습니다.

 
alexey1979621 :
예, 이제 열리지만 많은 거래가 있지만 EURAUD 및 AUDUSD와 같이 주어진 쌍에 대해 두 개의 거래만 열면 됩니다.

알고리즘은 부팅보다 간단합니다.

1. EuroAudi에 포지션이 없는 경우 - 포지션을 개설하고 ,

2. AudiBax에 포지션이 없으면 포지션을 엽니다.

 
vadynik :


도움이되지 않았습니다 ...

작동해야 하는 것처럼 보이지만 누락된 것이 있습니다.

주문이 선택된 후의 주기에서 priceopen을 취해야 하지 않습니까?
 
artmedia70 :

알고리즘은 부팅보다 간단합니다.

1. EuroAudi에 포지션이 없는 경우 - 포지션을 개설하고,

2. AudiBax에 포지션이 없으면 포지션을 엽니다.


아니, 아르테미스, 내 상황에 비하면 그렇게 되지 않을 거야.
 extern double lotAU= 1.3 ;
extern double lotEA= 1.0 ;
extern double Profit= 30 ;
extern int Operation= 0 ;
extern string Сomment           = "KVAZ" ;
extern int Magic                = 1111 ;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

double prof;
double bidEA = MarketInfo ( "EURAUD" , MODE_BID );
double askEA = MarketInfo ( "EURAUD" , MODE_ASK );
double bidAU = MarketInfo ( "AUDUSD" , MODE_BID );
double askAU = MarketInfo ( "AUDUSD" , MODE_ASK );

string symEA = "EURAUD" ;
string symAU = "AUDUSD" ;

for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
 OrderSelect (i, SELECT_BY_POS );
 prof=prof+ OrderProfit ();
 Print ( "Profit=" +prof);
}
if (prof>=Profit)
{
 for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
 {
   OrderSelect (i, SELECT_BY_POS );
  {
   if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ;
   OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 5 , 0 );
  }
 }
}

 if (Operation== 0 )
 {
   OrderSend (symEA, OP_BUY ,lotEA,askEA, 3 , 0 , 0 , "KVAZ" ,Magic, 0 ,Blue);
   OrderSend (symAU, OP_BUY ,lotAU,askAU, 3 , 0 , 0 , "KVAZ" ,Magic, 0 ,Blue); 
 }
 if (Operation== 1 )
 {
   OrderSend (symEA, OP_SELL ,lotEA,bidEA, 3 , 0 , 0 , "KVAZ" ,Magic, 0 ,Red);
   OrderSend (symAU, OP_SELL ,lotAU,bidAU, 3 , 0 , 0 , "KVAZ" ,Magic, 0 ,Red);
 }
 
   return ( 0 );
  }
 
alexey1979621 :
아니, 아르테미스, 내 상황에 비하면 그렇게 되지 않을 거야.


루프에서 기호와 마법에 따라 위치를 다시 계산합니다.

그리고 이것은 농담입니다. OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice () , 5 , 0 );


ZY: Artemis는 Artemis가 아닙니다.

아트미디어

 
evillive :


루프에서 기호와 마법에 따라 위치를 다시 계산합니다.

그리고 이것은 농담입니다. OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice () , 5 , 0 );


ZY: Artemis는 Artemis가 아닙니다.

아트미디어


어서, 난 이미 모든 사람들이 이름을 부르는 데 익숙해 ... 상관 없어 ...

실제로 이 함수 의 종가 는 정상적으로 롤링되었습니다. 컴파일러 자체가 적절한 가격을 제시했습니다. 최근에 여기 누군가에게 오류가 발생했습니다.

 
artmedia70 :

어서, 난 이미 모든 사람들이 이름을 부르는 데 익숙해 ... 상관 없어 ...

닉네임 바꿀때인가요?
 
alexey1979621 :
아니, 아르테미스, 내 상황에 비하면 그렇게 되지 않을 거야.


글쎄요...네 상황에서 모든게 삐뚤빼뚤 하면 정상적인 문장이 통하지 않는듯...
 
Zhunko :
닉네임 바꿀때인가요?

이 별명은 이미 삼백 년 ... 나는 그것에 성장했습니다.