[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 776

 
vasya_vasya :
bir karakter kodu seçmeniz gereken ok türünde bir nesnenin oluşturulması veya etiket türünde bir nesne kullanılması yoluyla

Teşekkürler) Eh, sadece puan olmaması üzücü (
 
FoxUA :
ATP için bu kadar detaylı bir açıklama var ama İŞ İÇİN BİR DANIŞMAN YAZIN ne yapıyorum sanıyorsunuz? HAYIR Nasıl ve neyin işe yarayacağını ÖĞRENDİM, burada yayınlanan ders kitabını okudum ve örneklere göre yapıyorum ve hedef olarak bıraktığım TC için bir danışman yazmaya çalışıyorum ama bu dili bir haftalığına yeni öğrendim adından ve uygulama yerinden daha fazlası, kendi deneyiminize göre bu kadar kategorik olmanıza gerek yok, sıfırdan yeni bir tane oluşturmaktansa çalışan bir parçayı sökmek daha iyidir, ancak nüans, bunun ne için çalıştığını bilmeniz gerektiğidir. Buradan yola çıkarak burada sökülecek bir sürü şey olduğunu gördüm ama ne için yaratıldığını bilmeden sökmek çok zor ve bu yüzden yeni bir tane yapmaya karar verdim ama tabii ki yapmayacaksın. her şeyi görün, BU OLDUĞU GİBİ BİR EYLEM PİYASA FİYATINDA BEKLEMEDEKİ BİR SİPARİŞ AÇMAKTIR VE HER ŞEY DAHA AZ DEĞİL DAHA AZ DEĞİLDİR. AMA AYIRDIĞINIZ ZAMAN İÇİN TEŞEKKÜR EDERİZ,

Alınma. Kodunuz yeni başlayanlar için zor. Basitten karmaşığa doğru gitmeniz gerekiyor. Eğitimde bir sistem olmalı, yoksa ders çalışmanın bir faydası olmaz.
 
mql4 kullanarak, (bu çubuğun) açılış zamanı biliniyorsa, mevcut grafik döneminde olmayan bir çubuğun sayısını veya bu çubuğun fiyatının bazı parametrelerini bulmak mümkün müdür?
 
drknn :

Alınma. Kodunuz yeni başlayanlar için zor. Basitten karmaşığa doğru gitmeniz gerekiyor. Eğitimde bir sistem olmalı, yoksa ders çalışmanın bir faydası olmaz.

Burada sana katılmıyorum, bir hedefin olmalı, asıl mesele bu ve diğer her şey takip edecek, ama tabii ki dışarıdan yardım almadan yapamazsınız, ama karmaşıklık hakkında, peki, sence ne robotlarla zor ve basit değil mi? Karmaşık hesaplamalara sahip göstergelerle büyük bir danışman yaratmıyorum, ancak piyasayı açan, erteleyen, ardından çalışma prensibini ve birbirini etkileme yöntemlerini öğrenmek için tüm seti değiştiren ve silen basit bir danışman! ama bana tavsiyede bulunursanız, fikriniz çok ilginç!
 
FoxUA :

Burada sana katılmıyorum, bir hedefin olmalı, asıl mesele bu ve diğer her şey takip edecek, ama tabii ki dışarıdan yardım almadan yapamazsınız, ama karmaşıklık hakkında, peki, sence ne robotlarla zor ve basit değil mi? Karmaşık hesaplamalara sahip göstergelerle büyük bir danışman yaratmıyorum, ancak piyasayı açan, erteleyen, ardından çalışma prensibini ve birbirini etkileme yöntemlerini öğrenmek için tüm seti değiştiren ve silen basit bir danışman! ama bana tavsiyede bulunursanız, fikriniz çok ilginç!


Kod oluşturma mantığını ve değişken isimleri seçme mantığını değiştirin. Bu her şeyden önce. Değişken adı 5 karakterden fazlaysa hiçbir şey olmaz. Kod netliği, ad netliği, boşluklarla blok sınırlaması, paragraf işaretleri ve yorumlar için verilen mücadelede oldukça önemlidir. Dili ne kadar çok kavrarsanız (ve sadece MQL değil), kodlarınız o kadar karmaşık olacaktır. Okunması kolay değişken adları verme alışkanlığınız yoksa ve kodu bloklar halinde (açıklamalı) düzenleme alışkanlığınız yoksa, er ya da geç içinde istediğiniz kodu oluşturacaksınız. uzun ve zor bir süre mantıklı bir hata arayacak, oluşturduğunuz kodun bu kadar okunamaz olduğu gerçeğine kendinize lanet edeceksiniz.

Gösterdiğiniz kod yeni başlayan biri olarak size karmaşık gelmiyorsa, bu sadece sizin için bir artı.

 
FoxUA :
ama bana tavsiyede bulunman için, fikrin çok ilginç!

İşte bloklar halinde düzenlenmiş ve değişken isimlerinin neden bu veya bu değişkenin kullanıldığını netleştirdiği bir kod örneği - isimlerine, blok yorumlarına bakın ...

 
RekkeR :
Herkese iyi akşamlar ve şimdiden harika bir hafta olsun. Muhtemelen ısıya aptalca atıyorum, aslında soru, noktalar arasındaki çizgiler arasındaki mesafeyi nasıl belirleyeceğimizdir?

Hız1=(Fiyat12-Fiyat11)/(Bar11-Bar12); Hız2=(Fiyat22-Fiyat21)/(Bar21-Bar22);

Fiyat1=Fiyat11+Hız1*Bar11; Fiyat2=Fiyat21+Hız2*Bar21;

Mesafe=(Fiyat1-Fiyat2)/Puan;

Bu, geçerli zamanda iki düz çizgi arasındaki mesafeyi belirlemek gerekirse.

 
drknn :

İşte bloklar halinde düzenlenmiş ve değişken isimlerinin neden bu veya bu değişkenin kullanıldığını netleştirdiği bir kod örneği - isimlerine, blok yorumlarına bakın ...

Bazen oraya yazmak istediğini hatırlaman gerektiğine katılıyorum ve hatırlamıyorsun, ama bu daha çok bir çalışma yöntemi, ama bir çalışma değil, bir sanatçının elinde bir fırça söylemek gibi bir şey ama ben bir tuval ve basit bir küçük resim yazmak için bir teknik seçmekle ilgileniyorum, çünkü ben zaten bir manzara ressamıyım ve açıkça biçimlendirilmiş, bu yüzden merak ediyorum, elinizde ilginç bir tuzak olup olmadığını merak ediyorum. yazma uzmanları için tekniğin bir açıklaması, çünkü internette her şey burada Toko ders kitabında başka bir deyişle aynıdır, ancak kökleri örnek olarak kullanarak yazdıklarınız, bu teknik robotlar, eğer okumayı çok isterim örnekler ve resimler!

 
tara :

Hız1=(Fiyat12-Fiyat11)/(Bar11-Bar12); Hız2=(Fiyat22-Fiyat21)/(Bar21-Bar22);

Fiyat1=Fiyat11+Hız1*Bar11; Fiyat2=Fiyat21+Hız2*Bar21;

Mesafe=(Fiyat1-Fiyat2)/Puan;

Bu, geçerli zamanda iki düz çizgi arasındaki mesafeyi belirlemek gerekirse.

Birkaç yatay çizgi var, farklı kombinasyonlarda aralarındaki puan kotasını belirlemeniz gerekiyor, prensip olarak, bu aşamada, iki çizgi arasındaki tanımlama bana uyacaktır, gerisini elimle yapacağım. Belki hazır bir script veya bunun gibi bir gösterge vardır? Cevabınız için teşekkürler.
 
FoxUA :

...

Örnekler ve resimler varsa okumayı çok isterim!

Pekala, hadi bir deney yapalım! 2 tane script yazalım. Biri işlevin doğru tanımını içerecektir. Diğeri yanlış. Yani doğru komut dosyası:

 #property show_inputs //эта строка выводит окно пользовательских параметров на экран
extern double DlyaKornya= 300 ; // величина. из которой нужно извлечь кв. корень
//+------------------------------------------------------------------+
//|                 Старт работы правильного скрипта                 |
//|                 вычисляющего квадратный корень                   |
//+------------------------------------------------------------------+
int start(){
  double Koren= 0 ;
        Alert ( "--------------------------------------------" );
  if (DlyaKornya< 0 ){
    Alert ( "Ошибка! Переменная " ,DlyaKornya, " не может быть меньше нуля" );
    return ( 0 );
  }
  Koren=MyKoren(DlyaKornya);
  Alert ( "Наша подпрограмма выдала результат = " ,Koren);
        Alert ( "На вход функции MyKoren() было подано число = " ,DlyaKornya);
  Alert ( "---- Правильное применение функции ----" );
        return ( 0 );
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

// ------------ MyKoren() -------------------------------------
// функция возвращает квадратный корень числа
// ------------------------------------------
double MyKoren( double MyValue){
        double Rezult= 0 ;
        Alert ( "Внутри функции переменная MyValue имеет значение = " ,MyValue);
        Rezult= MathSqrt (MyValue);
        return (Rezult);
}

Ve bu yanlış komut dosyası:

 #property show_inputs //эта строка выводит окно пользовательских параметров на экран
extern double DlyaKornya= 300 ; // величина. из которой нужно извлечь кв. корень
//+------------------------------------------------------------------+
//|                 Старт работы неправильного скрипта               |
//|                 вычисляющего квадратный корень                   |
//+------------------------------------------------------------------+
int start(){
  double Koren= 0 ;
        Alert ( "--------------------------------------------" );
  if (DlyaKornya< 0 ){
    Alert ( "Ошибка! Переменная " ,DlyaKornya, " не может быть меньше нуля" );
    return ( 0 );
  }
  Koren=MyKoren(DlyaKornya);
  Alert ( "Наша подпрограмма выдала результат = " ,Koren);
        Alert ( "На вход функции MyKoren() было подано число = " ,DlyaKornya);
  Alert ( "----НЕправильное применение функции ----" );
        return ( 0 );
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

// ------------ MyKoren() -------------------------------------
// функция возвращает квадратный корень числа
// ------------------------------------------
double MyKoren( double MyValue= 36 ){
        double Rezult= 0 ;
        Alert ( "Внутри функции переменная MyValue имеет значение = " ,MyValue);
        Rezult= MathSqrt (MyValue);
        return (Rezult);
}

Bu yanlıştır çünkü içindeki double MyKoren( double MyValue= 36 ){ satırı MyValue değişkenini = 36 değeriyle başlatır. Bu, değeri = değerini DlyaKornya değişkeninin değerine geçirdiğimiz için anlamsızdır .

Şimdi sırayla her iki betiği de grafiğe atıyoruz. Ve ne görüyoruz:

Ne yazık ki, her iki komut dosyası da aynı sonucu verdi.

Teorik olarak, ikinci (yanlış) betik = 6 değerini vermeliydi. Muhtemelen, derleyici yerleşik bir hata korumasına sahiptir, çünkü tekrar ediyorum, double MyKoren( double MyValue= 36 ){ satırı mantıklı değil. İçindeki bir değişkeni = 36 değeriyle başlatmak, yalnızca işlev parametreler belirtilmeden çağrıldığında işe yarıyor gibi görünüyor. Bizim durumumuzda, görünüşe göre, aşağıdakiler oldu - alt program çağrıldığında, ilk önce double MyValue değişkeni bildirildi, ardından = 36 değeri atandı ve ancak bundan sonra DlyaKornya değişkenindeki değer atandı. Muhtemelen başka bir açıklama düşünemezsiniz.

Her neyse, double MyKoren( double MyValue= 36 ){ gibi yapıları kullanmamak, ancak olması gerektiği gibi yazmak daha iyidir - double MyKoren( double MyValue){, aksi takdirde daha sonra altyordamın neden olması gerektiği gibi çalışmadığını şaşıracaksınız. .