Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 375

 
okidoki543 :
Biri bana yardım etmek isterse (yukarıya bakın), işbirliğine açığım.
Ticari olarak - hiç şüphesiz, yardım etmeye istekli bir insan kuyruğu sıraya girecek. Ve böylece ... kendiniz yazmaya başlayın, yardım gelecektir.
 
Ekburg :

sl'yi OrderStopLoss() ile değiştirin


Yardım etmedi...

 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);
             }
         }               
      }
   }
}

Çalışması gerekiyor gibi görünüyor, ancak bir şey eksik.

 
alexey1979621 :
Evet, şimdi açılıyor, ancak bir sürü anlaşma var, ancak belirli çiftler için, örneğin EURAUD ve AUDUSD için sadece iki anlaşmanın açılmasına ihtiyacım var.

Algoritma, botlardan daha basittir:

1. EuroAudi'de pozisyon yoksa - pozisyon açın ,

2. AudiBax'te pozisyon yoksa pozisyon açın.

 
vadynik :


Yardım etmedi...

Çalışması gerekiyor gibi görünüyor, ancak bir şey eksik.

Sipariş seçildikten sonraki döngüde priceopen alınması gerekmez mi?
 
artmedia70 :

Algoritma, botlardan daha basittir:

1. EuroAudi'de pozisyon yoksa - bir pozisyon açın,

2. AudiBax'te pozisyon yoksa pozisyon açın.


Hayır Artemis, benim durumuma göre o şekilde yürümeyecek.
 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 :
Hayır Artemis, benim durumuma göre o şekilde yürümeyecek.


Bir döngüde, sembole ve sihire bağlı olarak konumları yeniden hesaplayın.

Ve bu nasıl bir şakadır: OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice () , 5 , 0 );


ZY: Artemis, Artemis değil

Sanat medyası

 
evillive :


Bir döngüde, sembole ve sihire bağlı olarak konumları yeniden hesaplayın.

Ve bu nasıl bir şakadır: OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice () , 5 , 0 );


ZY: Artemis, Artemis değil

Sanat medyası


Hadi ama, ben zaten herkesin isim takmasına alıştım...umrumda değil...

Aslında , bu fonksiyondaki kapanış fiyatı normal olarak dönüyordu. Derleyicinin kendisi doğru fiyatı verdi. Son zamanlarda, bu burada biri için bir hataya neden oldu.

 
artmedia70 :

Hadi ama, ben zaten herkesin isim takmasına alışkınım... umrumda değil...

Takma adı değiştirme zamanı geldi mi?
 
alexey1979621 :
Hayır Artemis, benim durumuma göre bu şekilde yürümeyecek.


Eh, evet ... sizin durumunuzda, her şey çok çarpık yapıldığında, sanki normal cümleler yuvarlanmıyor ...
 
Zhunko :
Takma adı değiştirme zamanı geldi mi?

Bu takma ad zaten üç yüz yaşında ... Ben ona büyüdüm.