5 wmz için bir komut dosyası çizin. - sayfa 14

 
Profitabl :

Bu kod, dört hatayla derlenir, belki parantezler eksiktir?


Şu şekilde deneyin:

Peki ve buna göre, NumberOfPositions ve ClosePositions işlevleri kodda mevcut olmalıdır.

 extern double TakeProfit = 120 ;
extern double StopLoss = 120 ;
extern double Lots = 0.1 ;
int Magic = 1234567 ;
int ticket;

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if ( DayOfWeek()== 4 ) //если сегодня четверг
   {
     if ( Hour() == 23 ) //если - 23 часа терминального времени
       {
         if ( NumberOfPositions( NULL ,OP_BUY, Magic )== 0 ) //если нет открытых бай-позиций
           { 
           //"если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,"(с)
           //"а цена опен среды больше цены опен вторника" (с),
           //"да ещё цена опен вторника больше цены опен понедельника" (с),
           if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]>=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) 
              {
               ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask+StopLoss* Point , 3 , 0 ,Ask+TakeProfit* Point , "Name_Expert" , 16384 , 0 , Green );
               if (ticket!=- 1 )
                  { Print ( "Error opening BUY order : " , GetLastError ());
                   return ( 0 );}
              }     

           }
           
        }
   }       

if ( DayOfWeek()== 5 && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
ClosePositions( NULL ,OP_BUY, Magic); }

return ( 0 );
}
// the end.

 

=================

4 hata yoktu. Kullanılmayan 4 özellik vardı. Kaldırıldı.

Tekrarlıyorum. tf=n1 olup olmadığını kontrol edin

 extern int       Magic= 5671 ;

extern double    lots = 0.1 ;
extern int       StopLoss= 120 ;
extern int       TakeProfit= 120 ;

extern string _________________ = "=== Прочие Параметры советника  ===" ;
extern int        Slippage        = 10 ; // Проскальзывание цены
extern string Name_Expert = "Обезьяна Чи-Чи-Чи продавала кирпичи" ;
extern bool   UseSound      = True;   // Использовать звуковой сигнал
color  clOpenBuy     = Blue ;        // Цвет значка открытия покупки
color  clOpenSell    = Red ;         // Цвет значка открытия продажи
 color  clCloseBuy    = Green ;     // Цвет закрытия покупки
 color  clCloseSell   = Green ;    // Цвет закрытия продажи
extern int    NumberOfTry   = 10 ;           // Количество попыток
 string SoundSuccess  = "ok.wav" ;          // Звук успеха
 string SoundError    = "timeout.wav" ;    // Звук ошибки

//----------------------------------
double SL,TP;
int ticket;
static int prevtime = 0 ;
int StopLevel;

//-- Подключаемые модули --

#include <stderror.mqh>
#include <stdlib.mqh>

//+------------------------------------------------------------------+

int start()
  {
// задаем работу по ЦЕНАМ ОТКРЫТИЯ 
if (Time[ 0 ] == prevtime) return ( 0 ); //если появился новый бар
   prevtime = Time[ 0 ]; // начинаем работу

StopLevel = MarketInfo( Symbol (),MODE_STOPLEVEL); // вызываем разрешенный 
//минимаьный стоп-Уровень
//======================= открываем позиции =====================================
if ( DayOfWeek()== 4 ){ //если сегодня четверг
if ( Hour() == 23 )  { //если - 23 часа терминального времени
if ( NumberOfPositions( NULL ,OP_BUY, Magic )== 0 ) { //если  нет открытых бай-позиций 
//если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,
//а цена опен среды больше цены опен вторника,
//да ещё цена опен вторника больше цены опен понедельника,
if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ]>=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) {
//покупаем 
      SL= 0 ;TP= 0 ;
      if (StopLoss> 0 && StopLoss>StopLevel )    SL=Bid- Point *StopLoss;
      if (TakeProfit> 0 && TakeProfit>StopLevel) TP=Bid+ Point *TakeProfit;
      if (StopLoss  <StopLevel && StopLoss> 0 )   SL = Bid- Point *StopLevel; 
      if (TakeProfit<StopLevel && TakeProfit> 0 ) TP = Bid+ Point *StopLevel; 
   ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask, 3 ,SL,TP, "Name_Expert" ,Magic, 0 ,clOpenBuy );
   if (ticket < 0 ) {
            Print ( "Ошибка открытия ордера BUY #" , GetLastError ()); 
            Sleep ( 10000 );  prevtime = Time[ 1 ];   return ( 0 ); 
                  } 
        }}}}
//================== конец блока открытия ==================================
 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5  && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
 ClosePositions( NULL ,OP_BUY, Magic); }            
                  
//================== Конец блока закрытия  =============================
  return ( 0 );
  }
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец функции int start() ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ 
 
 //ЖЖЖЖЖЖЖЖЖЖЖ ПОЛЬЗОВАТЕЛЬСКИК ФУНКЦИИ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ

//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование торговой операции                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    op - идентификатор торговой операции                                    |
//+----------------------------------------------------------------------------+
string GetNameOP( int op) {
  switch (op) {
    case OP_BUY      : return ( "Buy" );
    case OP_SELL     : return ( "Sell" );
    case OP_BUYLIMIT : return ( "BuyLimit" );
    case OP_SELLLIMIT: return ( "SellLimit" );
    case OP_BUYSTOP  : return ( "BuyStop" );
    case OP_SELLSTOP : return ( "SellStop" );
    default          : return ( "Unknown Operation" );
  }
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия  : 19.02.2008                                                      |
//|  Описание: Закрытие одной предварительно выбранной позиции                 |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
  bool   fc;
  color  clClose;
  double ll, pa, pb, pp;
  int    err, it;

  if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
    for (it= 1 ; it<=NumberOfTry; it++) {
      if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
      while (!IsTradeAllowed()) Sleep ( 5000 );
      RefreshRates();
      pa=MarketInfo(OrderSymbol(), MODE_ASK);
      pb=MarketInfo(OrderSymbol(), MODE_BID);
      if (OrderType()==OP_BUY) {
        pp=pb; clClose=clCloseBuy;
      } else {
        pp=pa; clClose=clCloseSell;
      }
      ll=OrderLots();
      fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose);
      if (fc) {
        if (UseSound) PlaySound (SoundSuccess); break ;
      } else {
        err= GetLastError ();
        if (UseSound) PlaySound (SoundError);
        if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
        Print ( "Error(" ,err, ") Close " ,GetNameOP(OrderType()), " " ,
              ErrorDescription(err), ", try " ,it);
        Print (OrderTicket(), "  Ask=" ,pa, "  Bid=" ,pb, "  pp=" ,pp);
        Print ( "sy=" ,OrderSymbol(), "  ll=" ,ll, "  sl=" ,OrderStopLoss(),
              "  tp=" ,OrderTakeProfit(), "  mn=" ,OrderMagicNumber());
        Sleep ( 1000 * 5 );
      }
    }
  } else Print ( "Некорректная торговая операция. Close " ,GetNameOP(OrderType()));
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Закрытие позиций по рыночной цене                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void ClosePositions( string sy= "" , int op=- 1 , int mn=- 1 ) {
  int i, k= OrdersTotal ();

  if (sy== "0" ) sy= Symbol ();
  for (i=k- 1 ; i>= 0 ; i--) {
    if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn< 0 || OrderMagicNumber()==mn) ClosePosBySelect();
        } } } } }

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions( string sy= "" , int op=- 1 , int mn=- 1 ) {
  int i, k= OrdersTotal (), kp= 0 ;

  if (sy== "0" ) sy= Symbol ();
  for (i= 0 ; i<k; i++) {
    if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy== "" ) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op< 0 || OrderType()==op) {
            if (mn< 0 || OrderMagicNumber()==mn) kp++;
          }}}}}  return (kp);}

 
leonid553 :

=================

4 hata yoktu. Kullanılmayan 4 özellik vardı. Kaldırıldı.

Tekrarlıyorum. tf=n1 olup olmadığını kontrol edin


Nitekim bir örnek teşkil ediyorsunuz, 160 ruble aktarabileceğiniz WMR'yi en azından bir hayır kurumuna gönderebilirsiniz.

İşe yaramayan tek şey SATIŞ pozisyonlarının Cuma günleri 23:00'da kapalı olması, aksi halde sadece AL'lerin kapalı olması ve SATIŞ'ların üç veya dört gün değiştirilmesi ve tabii ki s\l'nin kapalı olması.

Bu euro ve pound verileri ek koşullar olarak dikkate alınabilir mi?, tahminler asimetrik olmadığında В=ВВ veya Н=НН ters yönde satın almak gerekir, bu sonucu büyük ölçüde iyileştirir.

Ama şu anda aynı sterlin ve euro verileri ise
EUR"Salı aşağı, Çar aşağı, Per aşağı"
GBP"Sal yükseldi, Çar yükseldi, Per azaldı"
sonra "SAT" değil, "SATIN AL"ı açın

Kârlılıktan bahsetmişken, yanlış tahminleri kaldırırsanız, Cuma günkü altı tahminden yalnızca 70 işlem yaklaşık 1500 pip değerindedir. Bu, diğer günlerde beş kat ile çarpılabilir ve depozito oranındaki lotlardaki artış iki kat daha fazladır - ne kadar olursa olsun, başa baş. Leonid'e sorunu çözmeye katılmak için ücretsiz olarak 160 EUR GBP CHF JPY tahminlerinden oluşan bir tablo veriyorum, WMR'yi ale2715@yandex.ru adresine gönderiyorum ve bir iade mektubunda tahminler alıyorum, bir danışman yazıyorum, para kazanıyorum, sadece katılma Onunla şampiyonluk, ben de onu şampiyonluğa bağlayacağım.

 
lasso :

Şu şekilde deneyin:

Peki ve buna göre, NumberOfPositions ve ClosePositions işlevleri kodda mevcut olmalıdır.


teşekkürler, şimdilik bu yönü bırakacağız
 
Profitabl :

İşe yaramayan tek şey, SATIŞ pozisyonlarının Cuma günleri 23:00'da kapalı olması, aksi halde sadece AL'lerin kapalı olması ve SATIŞ'ların üç veya dört gün değiştirilmesi ve tabii ki s\l'nin kapalı olmasıdır.

Ve bu doğru...)))

Böyle olmalı

 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5   && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем
 ClosePositions( NULL , -1 , Magic); }            
                  
//================== Конец блока закрытия  =============================
   return ( 0 );
  }
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец функции int start() ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ 
 

Kodda bir Satış pozisyonunun açılmasını hiç öngörmedim. Görevden beri - başlangıçta frangı için bir satın alma açmakla ilgiliydi.

//-----------

Evet, kapanışı biraz değiştirmeniz gerekiyor - ClosePositions(NULL,-1, Magic)

 
leonid553 :

4 hata yoktu. Kullanılmayan 4 özellik vardı. Kaldırıldı.

Tekrarlıyorum. tf=n1 olup olmadığını kontrol edin

Daha yakından incelediğimde, aşağıdakileri buldum:

1) koşullar birbiriyle çelişiyor

 //если цена open 46 периода 30M четверга меньше цены open 46 периода 30M среды,
// а цена опен среды больше цены опен вторника ,
//да ещё цена опен вторника больше цены опен понедельника,
if ( Close[ 1 ]<= Open[ 24 ] && Close[ 23 ] >=Open[ 48 ] && Close[ 47 ]>=Open[ 72 ]) {
//покупаем 


2) zaman serilerine yapılan çağrılar ( Open[48] gibi) geriye dönük test yapılırken tamamen doğru değildir, çünkü tarihte delikler oldukça olasıdır, bu da fiyatın başlangıç konusunun yazdığı yanlış çubuktan alındığı anlamına gelir.


3) Kapanış durumu

 //================Закрытие позиций=====================================
if ( DayOfWeek()== 5   && Hour() == 23 ){ //если сегодня пятница, 23-00
//закрываем

evrensel değil çünkü örneğin, DC Al ... ve Cuma günü saat değeri 23'e eşit olan bir çubuk yok


4) ve birkaç küçük nüans daha, ancak aynı zamanda ortaya çıkan denge eğrisi üzerindeki etkileri hiçbir şekilde küçük değil ....))


// zhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhzhi


Lütfen beni doğru anlayın. Bu gönderi hiçbir şekilde leonid553'e yönelik bir iddia değildir. (Leonid - saygı ve saygı!!!)


Demek istediğim, "Teal, Chirk senaryosu, beş dakika içinde" elbette yapabilirsin. Ancak uygulama, basit bir TK olmadığını gösteriyor.

Her yerde tüm parametrelerin sınır değerlerini kontrol etmeniz, hata ayıklama, "hata tuzakları" ayarlama vb.

Ve bir tür "senaryo" değil, değerli bir küçük ürünle sonuçlanmak için, ne derse desin, çok zaman alır ... Ne yazık ki.

 

Danışman zaten gerçek olanla işlem yapıyor, bugün ilk iki anlaşma 23'te açıldı, şimdi yarın nasıl kapanacağını merak ediyorum. Katıldığınız için hepinize teşekkür ederim.

Ancak bu tabloda, Uzman Danışman tarafından Salı günkü tahminler için yapılan testin sonuçları, "I" ile işaretlenmiş sinyallerdir, sadece üzerlerinde işlem yapmak B yöntemidir, sonuçları en sağ sütundadır, tüm sonuçlar pip cinsindendir.

Örneğin, Salı günü için CHF danışmanında sadece BBB, BNN, HVH bıraktım, depozito oranında lotları artırma yeteneği ekledim, depozitonun %10'unda satın alırken testte sonuç 55 kaybetmeden %180 ve karlı işlemler ve %20'den satın alırken kâr %450'dir. Tahılları kırmızı samandan temizlersiniz, danışmana "c" ile işaretlenmiş sinyalleri asimetrik çiftlerin çelişkili tahminleriyle değiştirmeyi öğretirsiniz, eklenen partileri azaltmazsınız, dört para biriminin hepsini aynı anda ticaret yaparsınız ve "yönetmen ile aşina olursunuz" forex'in." Bu üç sorunu çözüp bu Uzman Danışmanı almanız yeterli, bununla şampiyonaya katılmayın, analitiklerim adımı yüceltiyor.

27.01.08'den itibaren 160 tahminden sadece üç tanesinden %450'sini kendiniz kontrol edin, 1H başına CHF. Hatta %830'luk bir oran vardı, eğer danışman sadece lotları artırmış olsaydı, geriye çok fazla ve hatta daha fazlası kalacaktı.

Dosyalar:
450_2.rar  20 kb
 

Hiçbir kelime yok ... Sadece kase . Daha önce nasıl fark edilmedi?

 
lasso :

Daha yakından incelediğimde, aşağıdakileri buldum:

......

Lütfen beni doğru anlayın. Bu gönderi ...... için bir iddia değildir.

Evet, kodu yazmanın doğruluğunu hiç iddia etmiyorum. Orada özellikle not ettim - yazdığım kodun sadece boş olduğunu.

Belki genel terimler dışında, taktiklerin inceliklerine henüz girmedim. Ama şimdiden taktiklerin Puanları hak ettiğini düşünüyorum. ciddi dikkat. Ben esas olarak mevsimlik emtia ticareti ile uğraşıyorum ve bu yüzden burada umutlar olduğunu düşünüyorum. Çünkü burada - aslında, aynı "yarı mevsimlik ticaret", ancak saat başı kısa vadeli:

" Eğilim kontrolü:
Örnek olarak gümüşü ele alalım. Saatlik mum, 18:00'den 19:00'a kadar, vakaların yüzde 70'inden fazlasında, sonraki 23 saatteki fiyat hareketiyle aynı doğrultudaydı, bu arada, diğer bazı metaller için tipiktir. Ve bu son 50, 40 ve 30 ve 20 ve 10 gün içinde oldu. Yani, 19 saat sonra bu mum yönünde bir sipariş veriyoruz ....
"(s, - BR forum.)

Dahası, Tamamen tesadüfen, ben - dünden daha geç değil (yukarıdaki alıntıya bakın) - keşfettim - bu tür (neredeyse "bire bir") taktiklerle, iyi bilinen son aylık demo yarışmasının DC BR kazandı. 5000$ ödüllü.

Ve mevcut Eylül yarışmasındaki katılımcı alım satım vadeli işlemleri, ayın başından bu yana bu yöntemi kullanarak 1000'den fazla kar puanı kazandı. (Orada demo yarışmasının kuralları çok katıdır - katılımcıların giriş sırasında her bir ticaretini forumda açıklamaları gerekir ve her bir ticaretin riski (stoploss) -200 doları geçmemelidir, aksi takdirde diskalifiye edilecektir. .)

Yani, NorthAlec , - muhtemelen boşuna ironi yapıyorsun.