Asla programlama eğitimi almadım. ama bir danışman yazmak istiyorum - sayfa 8

 

Ne yani sevgili programcılar mı?
Konunun yazarıyım ve tavsiye istemeye devam ediyorum.


başlıktaki araçlar yapıyı ilan etti

Ve işte en ilginç olanı, NEDİR?
onTIK, açık sipariş olmaması durumunda bir koşul tanımladı
o zamanlar:
hızlı püre yavaş püreden daha büyükse,
sonra: bir sipariş aç



soru. neden her tikte bir emir açılıyor?

 
Sergey Lobzankin :

Ne yani sevgili programcılar mı?
Konunun yazarıyım ve tavsiye istemeye devam ediyorum.


başlıktaki araçlar yapıyı ilan etti

Ve işte en ilginç olanı, NEDİR?
onTIK, açık sipariş olmaması durumunda bir koşul tanımladı
o zamanlar:
hızlı püre yavaş püreden daha büyükse,
sonra: bir sipariş aç



soru. neden her tikte bir emir açılıyor?

Bu, koşulun her işarette karşılandığı anlamına gelir.

Koşul MA geçişini içeriyorsa, ilk çubukta < daha az ve sıfırda > daha fazla oldu. Ve sizin durumunuzda sıfır > daha fazla ve ilk > daha fazla.

 

https://code.org/

https://scratch.mit.edu/

MQL'de programlama öğrenmek (ve bu aslında bir düşünce tarzıdır ve bir tür dil değildir) kendiniz ve çevreniz için tam bir güçlüktür.

bağlantıları gözden geçirin - orada her şey basit, okul düzeyinde (hatta bazı yerlerde ilkokul), ancak en azından algoritmalara ve bunların kayıtlarına biraz giriş. Aksi takdirde, her hapşırık forumla iletişime geçecek ve bir cevap bekleyeceksiniz ve bu bir zaman kaybı ve vakit nakittir.

Not / Evet ve herkese kendilerini tanımalarını tavsiye ederim, içeriden çizik genellikle bir başyapıttır - modern programlamanın büyükbabası

Code.org: Любой может научиться
Code.org: Любой может научиться
  • code.org
Каждый студент в каждой школе заслуживает возможность изучения компьютерных наук.
 
Sergey Lobzankin :

Ne yani sevgili programcılar mı?
Konunun yazarıyım ve tavsiye istemeye devam ediyorum.


başlıktaki araçlar yapıyı ilan etti

Ve işte en ilginç olanı, NEDİR?
onTIK, açık sipariş olmaması durumunda bir koşul tanımladı
o zamanlar:
hızlı püre yavaş püreden daha büyükse,
sonra: bir sipariş aç



soru. neden her tikte bir emir açılıyor?

Şey, konunun yoldaş yazarı?

Bir ay önce söylediler ama dikkat bile etmiyorsun:

Kodu bir resimle eklemek korkunç bir korku olduğu için yayınlayacaksınız)


Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Asla programlama eğitimi almadım. ama bir danışman yazmak istiyorum

Konstantin Nikitin , 2018.04.10 21:18

Doğaldan öte bir şeye sahip değilsin. Peki en iyi seçenek nedir. Burada yayınlayın, ancak yalnızca aracılığıyla

Biri bana neyin iyi olduğunu bildirsin.


Ve yine de kodu resim olarak yapıştırın.

 
Merhaba, bu sorunla karşılaştım. EA, durumu analiz etmek ve daha fazla hesaplama yapmak için sıfır ve ilk çubuklarda hareketli ortalama verilere ihtiyaç duyar.
OnCalculate işlevi temel olarak hindi yazmak için tasarlanmıştır. Ve Expert Advisor'da bu işlevi ayrı ayrı çıkardım ama OnTick'ten nasıl erişeceğimi çözemiyorum.
 
Sergey Lobzankin :
Merhaba, bu sorunla karşılaştım. EA, durumu analiz etmek ve daha fazla hesaplama yapmak için sıfır ve ilk çubuklarda hareketli ortalama verilere ihtiyaç duyar.
OnCalculate işlevi temel olarak hindi yazmak için tasarlanmıştır. Ve Expert Advisor'da bu işlevi ayrı ayrı çıkardım ama OnTick'ten nasıl erişeceğimi çözemiyorum.

OnCalculate'i göstergeden bir Uzman Danışmana taşımaya çalışmanıza bile gerek yok! EA'daki göstergeye erişmeniz (göstergenin elini kullanarak) ve verileri almanız yeterlidir.

iMA kodunda iStdDev'de iMA ve iStdDev ile çalışmaya bir örnek - OnTick'ten kod alıntısı, iMA göstergelerinden veri alma

   double ma_fast[],ma_normal[],stddev[];
   MqlRates rates[];
   ArraySetAsSeries (ma_fast, true );
   ArraySetAsSeries (ma_normal, true );
   ArraySetAsSeries (stddev, true );
   ArraySetAsSeries (rates, true );
   int buffer= 0 ,start_pos= 0 ,count= 3 ;
   if (!iGetArray(handle_iMA_Fast,buffer,start_pos,count,ma_fast) || 
      !iGetArray(handle_iMA_Normal,buffer,start_pos,count,ma_normal) || 
      !iGetArray(handle_iStdDev,buffer,start_pos,count,stddev) || 
       CopyRates (m_symbol.Name(), Period (),start_pos,count,rates)!=count)
     {
      PrevBars= 0 ;
       return ;
     }
//---
   if (ma_fast[ 0 ]>ma_normal[ 0 ])
       if (rates[ 1 ].close>rates[ 1 ].open)
         if (rates[ 1 ].close>ma_normal[ 0 ])
             if (stddev[ 0 ]>stddev[ 1 ])
               m_need_open_buy= true ;
   if (ma_fast[ 0 ]<ma_normal[ 0 ])
       if (rates[ 1 ].close<rates[ 1 ].open)
         if (rates[ 1 ].close<ma_normal[ 0 ])
             if (stddev[ 0 ]>stddev[ 1 ])
               m_need_open_sell= true ;
 
Vladimir Karputov :

OnCalculate'i göstergeden bir Uzman Danışmana taşımaya çalışmanıza bile gerek yok! EA'daki göstergeye erişmeniz (göstergenin elini kullanarak) ve verileri almanız yeterlidir.

iMA kodunda iStdDev'de iMA ve iStdDev ile çalışmaya bir örnek - OnTick'ten kod alıntısı, iMA göstergelerinden veri alma

Haklı olduğundan şüpheleniyorum.
Şimdi dizilerle oynamaya çalışacağım ... Dizi ...

 

ve işte daha fazlası...
Uzman başlığında tutamaçları aldım

 extern int     zazor      = 0 ;
extern double Lots       = 0.1 ;
extern int     TrailingStop = 15 ;
extern int     TrailingStep = 2 ;
extern int     Magic      = 123 ;
extern int     Slippage   = 5 ;
int Digits ;

int timeprev= 0 ;

int     ticket;
double price,TP,SL,lastlot;
string ;

int ima1_handle          = iMA ( Symbol (), 0 , 14 , 0 , MODE_EMA , PRICE_CLOSE );               //хендл
int ima2_handle          = iMA ( Symbol (), 0 , 64 , 0 , MODE_EMA , PRICE_CLOSE );               //хендл
int Stoch_handle         = iStochastic ( Symbol (), 0 , 20 , 15 , 15 , MODE_EMA , STO_CLOSECLOSE ); //хендл
int ATR_handle           = iATR         ( Symbol (), 0 , 21 );                               //хендл
double ima1_massiv [ 2 ];                                                                //статический массив для быстрой машки 

ve forumlarda bunu nasıl yapıyorlar, ... her şey farklı mı? onInit'te biri, OnTik'te biri,
sadece OnTik'teki senaryomda verileri bir diziye kopyalarım ve aynı sayıda kopyalanan öğeyi alırım

 void OnTick ()
  { 
     int ima_count1 = CopyBuffer (ima1_handle, 0 , 1 , 2 ,ima1_massiv);     //скопировал данные из 2х буферов быстрой машки
     string str_ima1 = IntegerToString (ima_count1);                 //отладочная
      printf ( "мой первый хендл = "   + str_ima1);                      //отладочная
   }
PS Bu arada, test cihazı, Uzman Danışman başlığında tutamaçları elde edilen tüm göstergeleri gördü ve her şeyi görselleştirici tablosunda çizdi.
 

gösterge verilerine erişimin nasıl uygulanacağını açık bir şekilde açıklayan bir makale
https://www.mql5.com/en/articles/43

ama beyler, veriler bir diziye kopyalanıyor, tartışmıyorum, ancak belirli sayıları almam gerekiyor, yani mevcut çubuğun son tik işareti 1.32456 ise, o zaman bu sayıyı almalıyım günlüğe (numaranın gerçekten alındığından emin olmak için), BU ÖZEL BİLGİYİ bir çift türe ÇEKMEM gerekiyor,

iki farklı kene arasındaki int noktalarının sayısını hesaplamak için. BU değer nasıl elde edilir?


Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • www.mql5.com
В MQL5 существует несколько вариантов вызова индикаторов, и осуществляются они в основном при помощи функций IndicatorCreate() и iCustom(). Причем эти функции лишь возвращают хендл индикатора, и дальнейшая работа с индикаторами ведется именно через него. Так что же такое хендл? Как работать с функциями IndicatorCreate() и iCustom()? И как...
 
Sergey Lobzankin :

gösterge verilerine erişimin nasıl uygulanacağını açık bir şekilde açıklayan bir makale
https://www.mql5.com/en/articles/43

ama beyler, veriler bir diziye kopyalanıyor, tartışmıyorum, ancak belirli sayıları almam gerekiyor, yani mevcut çubuğun son tik işareti 1.32456 ise, o zaman bu sayıyı almalıyım günlüğe (numaranın gerçekten alındığından emin olmak için), BU ÖZEL BİLGİYİ bir çift türe ÇEKMEM gerekiyor,

iki farklı kene arasındaki int noktalarının sayısını hesaplamak için. BU değer nasıl elde edilir?


Size söylenenleri izleyip okuyor musunuz? nolu mesajda örnek verdim. İki iMA'dan veri alınıyor :

   double ma_fast[],ma_normal[],stddev[];
   MqlRates rates[];
   ArraySetAsSeries (ma_fast, true );
   ArraySetAsSeries (ma_normal, true );
   ArraySetAsSeries (stddev, true );
   ArraySetAsSeries (rates, true );
   int buffer= 0 ,start_pos= 0 ,count= 3 ;
   if (!iGetArray(handle_iMA_Fast,buffer,start_pos,count,ma_fast) || 
      !iGetArray(handle_iMA_Normal,buffer,start_pos,count,ma_normal) || 
      !iGetArray(handle_iStdDev,buffer,start_pos,count,stddev) || 
       CopyRates (m_symbol.Name(), Period (),start_pos,count,rates)!=count)
     {
      PrevBars= 0 ;
       return ;
     }
//---
   if (ma_fast[ 0 ]>ma_normal[ 0 ])
       if (rates[ 1 ].close>rates[ 1 ].open)
         if (rates[ 1 ].close>ma_normal[ 0 ])
             if (stddev[ 0 ]>stddev[ 1 ])
               m_need_open_buy= true ;
   if (ma_fast[ 0 ]<ma_normal[ 0 ])
       if (rates[ 1 ].close<rates[ 1 ].open)
         if (rates[ 1 ].close<ma_normal[ 0 ])
             if (stddev[ 0 ]>stddev[ 1 ])
               m_need_open_sell= true ;

İki iMA göstergesi vardır - "Hızlı" ve "Normal". Bu iki göstergeden verileri sırasıyla ma_fast ve ma_normal dizilerine alıyoruz . # start_pos çubuğundan sayım miktarını talep ediyoruz.

Ve sonra alınan verilere dönüyoruz (bu örnekte, #0 çubuğundaki verilere dönüyoruz)