[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 476

 
Artemis harika!!!
 
Roman. :


1. Herkes için - bu sayfanın 7. gönderisindeki bağlantılarımdaki tüm bilgileri okuyun.

2. Sorunuzla ilgili prog için fragmana bakın. İkinci dosya strateji optimizer ile çalışma örneğimdir ve şu anda grafikte olan bağımlılık, Recovery Factor'dan optimizasyon sonucunda elde edilen TS'nin stop ve kâr değerleridir. Son zamanlarda kendim kullanıyorum - hala kendim anlıyorum, bu yüzden tüm sorular yazarlarına. aracılığıyla web sitelerine göz atın

3. Her şey, IMHO.


Harika!! Bu programın adı bence Esel? Nasıl kullanılır, nasıl kurtarılır?
 

Beyler, ben bu konuda tam bir acemiyim ama lütfen bana bu şekilde davranan bir danışmanı nasıl yazacağıma yardım edin, önce sadece bir satın alma emri açar ve kar al ve zararı durdur koyar, sonra bu emir kar alırken kapanırsa tetiklenir, aynı satın alma emri açılır ve zararı durdur tetiklendiğinde kapanırsa, zaten satılıktır.
 
Sonuçlar excel'de nasıl kaydedilir? Test cihazında hepsini kaydet'e tıkladım, Excel'i buldum ve açtım, beyaz bir arka plan üzerine yapıştır'a tıkladım, hiçbir şey olmadı. Belki yakında kardeşim gelip beni zorlar, bilgisayar yüzünden.
 
dkfl.zrjdktdbx :
Sonuçlar excel'de nasıl kaydedilir? Test cihazında hepsini kaydet'e tıkladım, Excel'i buldum ve açtım, beyaz bir arka plan üzerine yapıştır'a tıkladım, hiçbir şey olmadı. Belki yakında kardeşim gelip beni zorlar, bilgisayar yüzünden.
Belki ikinci bir bilgisayar satın alırsın?
 
Bir gün..
 
dkfl.zrjdktdbx :
Sonuçlar excel'de nasıl kaydedilir? Test cihazında hepsini kaydet'e tıkladım, Excel'i buldum ve açtım, beyaz bir arka plan üzerine yapıştır'a tıkladım, hiçbir şey olmadı. Belki yakında kardeşim gelip beni zorlar, bilgisayar yüzünden.

her şeyi kopyala ve yapıştır, sadece sütunların adını kendin yazman gerekiyor ve karlılık benimle aylara dönüşüyor.
 
dkfl.zrjdktdbx :

Harika!! Bu programın adı bence Esel? Nasıl kullanılır, nasıl kurtarılır?

MicrosoftOffice - Excel için yardımını ve belgelerini okuyun... :-)
 

Yoldaşlar, geçenlerde danışmanın gerçek bir hesapta strateji test cihazından tamamen farklı bir şekilde çalıştığı sorusunu sordum. Danışmanın kodu olmadan bunu çözmenin bir yolu olmadığını söylediniz. Kodu gönderiyorum:

Kısaca açıklanan Expert Advisor, Martingale ilkesine göre çalışır, yani önceki seferde işlem başarılı olmazsa çift lotla açılır. 3 defadan fazla yanlışsa, bir dairenin başladığına inanıyorum ve partilerin boyutlarını değiştiriyorum ve duruyorum, ama orantılı olarak, sanki danışman hala çift lot ile diğer yönde açılıyor.

Her şey yolundaysa, o zaman bir lotla aynı yönde açılır. Sorun şu: test cihazında her şey yolunda gidiyor, ancak gerçek hesapta 0.24'lük bir sürü ile satın almak için 2. anlaşmayı açıyor (böyle bir sayı anahtar işlevinde ayarlanmıştır)... yardım plz... Gerçekten gerçek hayatta denemek istiyorum, o zaman bu pürüz demo hesabımdan çıkmama izin vermiyor =(

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

tüm açıklamalar yansıtılmıştır... Ek açıklamalar gerekirse, onları zevkle sağlarım.

 
Herkese merhaba, Mutlu Yıllar. Beyler yardım edin, siparişin bir kez verilmesi için hiçbir şey yapamam, siparişin verildiği koşul karşılanıyorsa, daha sonra bir sipariş varsa, verilmemesi için daha sonra yapılması gerekir. ikinci kez. Mümkünse bir örnek.