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

 
lottamer :


Bu modu ben yazmadım.

Kütüphanelerden hazırlayıp aldım.

bu yüzden temizleyemiyorum. Ana şey,% 100 çalışıyor olmasıdır.

ve bu yüzden içindeki parametre optimize edilmedi - soru bu .....

temel hatalar yok!

kodun geri kalanı çalışıyor.

algoritmaya herhangi bir koşul koyun.

- satın almak

-değiştir

- kapat

----------------------------

ve MODIFY sırası içindeki parametreyi optimize etmeye çalışın - yani. dur ve al

Eh, bir kez çalışan ve hatta %100'den fazlası, içinde hiçbir sorun olmadığı anlamına gelir. O zaman neden onda bir hata arıyorsun? - Onunla ilgili değil, mesele bu! - Ve eğer bir hata arıyorsanız, o zaman %100 emin değilsiniz. Yani sorun artık kodda değil, değerlendirme kriterlerinizde, çünkü onlar da seni karıştırır. (Bunu ilk sen başlattın :))) Sadece biraz yağ ekledim...)

Burada sunulan - buna ne diyeceğimi bile bilmiyorum ... Muhtemelen - bir işlev boyutuna kadar şişirilmiş bir eylem. Çoğu programda, böyle bir uygulama optimal değildir - değişiklik dahil. tek bir blokta başka bir şeyle gider. - Rağmen. koşullar değişebilir. Ama demek istediğim burada optimize edilecek bir şey yok ... çünkü. bu sadece bir eylem.

 
lottamer :

peki, bak

şimdi her şeyi geri verirsem, yani. STOP AND AL harici parametrelerini kaldırırsam ve bunun yerine fonksiyonun içine sayılar yazarsam, o zaman 10 hafta boyunca her hafta çalıştırılan danışman net sonuçlar gösterir. tam olarak ne gerekiyorsa onu yapar. anlaşmadan sonra görsel olarak kontrol edilen anlaşma.

Ve eğer dur ve al parametrelerini manuel olarak değiştirirsem, her şey işe yarayacak ve biraz farklı sonuçlar verecektir (bu doğaldır)

ve şimdi neden bu parametreleri değiştiricinin dışına koyduğumda, optimize edici bunları önemsiz olarak görüyor?

Yani tam olarak bundan bahsediyorum ve size sorunun büyük olasılıkla başka bir yerde olduğunu ve bu fonksiyonda olmadığını söylemeye çalışıyorum. Yani hala kafan karışık. Belki de bu SL ve TP, bir şekilde kesişen başka yerlerde veya başka bir yerde kullanılıyor... Sadece tahmin edebiliriz. - Bu yüzden kodun tamamına bakmanız gerekiyor. Ve kimse sana körü körüne yardım edemez. Burada sihirbaz yok.

Görüyorsunuz, sorular soruyorsunuz ve sebebi belirlemek için gerekli olan bilgilerin bir kısmını rapor etmiyorsunuz (makul bir şekilde bilgi birikiminizi gizliyorsunuz). - Dahil edilen örnekte olduğu gibi. - Ama bu durumda nasıl yardım etmek mümkün olabilir? - Cevap: olamaz. Her yardım anlamsızdır. Ve aynı zamanda güç gerektirir.

 
Chiripaha :

Eh, bir kez çalışan ve hatta %100'den fazlası, içinde hiçbir sorun olmadığı anlamına gelir. O zaman neden onda bir hata arıyorsun? - Onunla ilgili değil, mesele bu! - Ve eğer bir hata arıyorsanız, o zaman %100 emin değilsiniz. Yani sorun artık kodda değil, değerlendirme kriterlerinizde, çünkü onlar da seni karıştırır. (Bunu ilk sen başlattın :))) Sadece biraz yağ ekledim...)

Burada sunulan - buna ne diyeceğimi bile bilmiyorum ... Muhtemelen - bir işlev boyutuna kadar şişirilmiş bir eylem. Çoğu programda, böyle bir uygulama optimal değildir - değişiklik dahil. tek bir blokta başka bir şeyle gider. - Rağmen. koşullar değişebilir. Ama demek istediğim burada optimize edilecek bir şey yok ... çünkü. bu sadece bir eylem.

Bakıyorum çünkü SADECE onu değiştirdik ve içinde parametreler optimize edildi.

nasıl optimize edilecek bir şey yok? dur ve hedef boyutu optimize edildi!

 
Chiripaha :

Yani tam olarak bundan bahsediyorum ve size sorunun büyük olasılıkla başka bir yerde olduğunu ve bu fonksiyonda olmadığını söylemeye çalışıyorum. Yani hala kafan karışık. Belki de bu SL ve TP, bir şekilde kesişen başka yerlerde veya başka bir yerde kullanılıyor... Sadece tahmin edebiliriz. - Bu yüzden kodun tamamına bakmanız gerekiyor. Ve kimse sana körü körüne yardım edemez. Burada sihirbaz yok.

Görüyorsunuz, sorular soruyorsunuz ve sebebi belirlemek için gerekli olan bilgilerin bir kısmını rapor etmiyorsunuz (makul bir şekilde bilgi birikiminizi gizliyorsunuz). - Dahil edilen örnekte olduğu gibi. - Ama bu durumda nasıl yardım etmek mümkün olabilir? - Cevap: olamaz. Her yardım anlamsızdır. Ve aynı zamanda güç gerektirir.

Anlıyorum...

Biraz ara vermeli ve düşünmeliyim...

bakmak....

Nerede olduğunu bildiğimi bile düşünüyorum...

 
lottamer :

Bakıyorum çünkü SADECE onu değiştirdik ve içinde parametreler optimize edildi.

nasıl optimize edilecek bir şey yok? dur ve hedef boyutu optimize edildi!

:)))))) Nasıl optimize edilirler? sırayla değişiklik? - Az önce söylediğin bu değildi.

Güvenli bir şekilde gizlediğiniz programa, koşullarına göre optimize edilmelidirler. Ve tek bir eylemle ilgili olarak, bu hiçbir şekilde optimize edilemez.

Bu durumda, geliştiricinin bu noktalara kendi başına karar vermesi yeterlidir. Hepimiz bunu yaşıyoruz, inan bana. :)) Ve ben ve diğer meslektaşlarım. Yardım isteyip saklanamazsınız. O zaman ifşa etmeniz gerekecek - bu durumda, herkese açık hale getirin, çünkü. Forum genel, - onların haritaları.
 
Chiripaha :

:)))))) Nasıl optimize edilirler? sırayla değişiklik? - Az önce söylediğin bu değildi.

Güvenli bir şekilde gizlediğiniz programa, koşullarına göre optimize edilmelidirler. Ve tek bir eylemle ilgili olarak, bu hiçbir şekilde optimize edilemez.

Bu durumda, geliştiricinin bu noktalara kendi başına karar vermesi yeterlidir. Hepimiz bunu yaşıyoruz, inan bana. :)) Ve ben ve diğer meslektaşlarım. Yardım isteyip saklanamazsınız. O zaman ifşa etmeniz gerekecek - bu durumda, herkese açık hale getirin, çünkü. Forum halkı, haritaları.

şimdi tüm kodları hazırlayacağım ve ........
 

işte kod:

EURUSD çifti

 //+------------------------------------------------------------------+
//|                                                           33.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#include <WinUser32.mqh>
#include <b-Positions.mqh>

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

extern    int   STOP = 100 ; 
extern    int   TAKE = 200 ;

double   Ma_1, Ma_2,  m2, m3; // m2 и m3 - это маркеры



//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
Ma_1= iMA ( NULL , PERIOD_M15 , 20 , 0 , MODE_SMA , PRICE_CLOSE , 1 ) ;

Ma_2= iMA ( NULL , PERIOD_M15 , 100 , 0 , MODE_SMA , PRICE_CLOSE , 1 ) ;





//=============================BUY_CONDITIONS=============================================
    

if (Ma_1>Ma_2 && m2== 0 )     {My_close();  My_buy ();  My_modify();  m2= 1 ;   }   // закрыть если висят открытые позы   
                                                                                                   // и открыть новую
//=============================SELL_CONDITIONS=============================================
 
if (Ma_1<Ma_2 && m3== 0 )     {My_close();  My_sell ();  My_modify();  m3= 1 ;  }    
 
//======================================

if   ( OrdersTotal ()== 0 && (m2== 1 || m3== 1 )) {m2= 0 ; m3= 0 ;}   // обнуляет маркеры при закрытии позиций,
                                                           // что дает возможность открывать снова
//==============переход в безубыток ========================
   
OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES);
   
if   (OrderProfit()> 0.5 )  {My_modify_close_zero ();}


return ( 0 );
  }

//============================функция  ПРОДАТЬ==============================================

int My_sell()
{
     OrderSend ( Symbol ( ), OP_SELL,   0.01 ,Bid, 0 , 0 , 0 , NULL , 0 , 0 , CLR_NONE );

}
return ;

///==================================КУПИТЬ==========================================
int My_buy ()
{
     OrderSend ( Symbol ( ), OP_BUY, 0.01 ,Ask, 0 , 0 , 0 , NULL , 0 , 0 , CLR_NONE );
}
return ;


//+---------------------МОДИФИЦИРОВАТЬ сделку сразу по открытии---------------------------------------------+


int My_modify()
 {
   bool    result;
   double take_profit,stop_loss,point;
   int     cmd,total,error;
//----
   total= OrdersTotal ();
   point=MarketInfo( Symbol (),MODE_POINT);
//----
//   for(int i=0; i<total; i++)
//     {
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         OrderPrint();
         cmd=OrderType();
         //---- buy or sell orders are considered
         if (cmd==OP_BUY || cmd==OP_SELL)
           {
             //---- modify first market order
             while ( true )
              {
               if (cmd==OP_BUY) stop_loss=OrderOpenPrice()-STOP*point;
               else             stop_loss=OrderOpenPrice()+STOP*point;
               
                 if (cmd==OP_BUY) take_profit=OrderOpenPrice()+TAKE*point;
                           else take_profit=OrderOpenPrice()-TAKE*point;
               
               
               result=OrderModify(OrderTicket(), 0 ,stop_loss, take_profit, 0 , CLR_NONE );
               if (result!=TRUE) { error= GetLastError (); Print ( "LastError = " ,error); }
               else error= 0 ;
               if (error== 135 ) RefreshRates();
               else break ;
              }
             //---- print modified order (it still selected after modify)
             OrderPrint();
//            break;
           }
        }
       else { Print ( "Error when order select " , GetLastError ()); }
//     }

   return ( 0 );
  }
  
  
//==============================выставить стопы в безубыток============================================================
int My_modify_close_zero ()
{
   bool    result;
   double stop_loss,point;
   int     cmd,total,error;
//----
   total= OrdersTotal ();
   point=MarketInfo( Symbol (),MODE_POINT);
//----
//   for(int i=0; i<total; i++)
//     {
       if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         OrderPrint();
         cmd=OrderType();
         
         //---- buy or sell orders are considered
         if (cmd==OP_BUY || cmd==OP_SELL)
           {
             //---- modify first market order
             while ( true )
              {
               if (cmd==OP_BUY) stop_loss=OrderOpenPrice();
               else             stop_loss=OrderOpenPrice();
               
               result=OrderModify(OrderTicket(),OrderOpenPrice(),stop_loss,OrderTakeProfit(), 0 , CLR_NONE );
               if (result!=TRUE) { error= GetLastError (); Print ( "LastError = " ,error); }
               else error= 0 ;
               if (error== 135 ) RefreshRates();
               else break ;
              }
             //---- print modified order (it still selected after modify)
             OrderPrint();
//             break;
           }
        }
       else { Print ( "Error when order select " , GetLastError ()); }
//     }
//----
   return ( 0 );
  }

  
//=================ЗАКРЫТЬ СДЕЛКУ=======================================================
int My_close()
  {
   bool    result;
   double price;
   int     cmd,error;
//----
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES))
     {
      cmd=OrderType();
       //---- first order is buy or sell
       if (cmd==OP_BUY || cmd==OP_SELL)
        {
         while ( true )
           {
             if (cmd==OP_BUY) price=Bid;
             else             price=Ask;
            result=OrderClose(OrderTicket(),OrderLots(),price, 3 , CLR_NONE );
             if (result!=TRUE) { error= GetLastError (); Print ( "LastError = " ,error); }
             else error= 0 ;
             if (error== 135 ) RefreshRates();
             else break ;
           }
        }
     }
   else Print ( "Error when order select " , GetLastError ());
//----
   return ( 0 );
  }
 
lottamer :

işte kod:

EURUSD çifti

b-Positions.mqh ekleyin - aksi takdirde çalıştırmayın - programın çalışmasını görmeyin.
 
Chiripaha :
b-Positions.mqh ekleyin - aksi takdirde çalıştırmayın - programın çalışmasını görmeyin.

Dosyalar:
b-positions.mqh  90 kb
 
lottamer :
Sorum şu - danışmanınızın kendisinde gerekli tüm işlevler mevcutsa, neden bu dosyaya ihtiyacınız var? Yapmayı planladığınız başka bir şey var mı?