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

 

Sevgili profesyoneller, lütfen bana şu soruyu söyleyin:

Daha önce bir metin dosyasına yazılmış tek boyutlu bir dizi dizim var

EURUSD 1654.31

GBPUSD -1654.61

USDCAD 110.98

USDJPY 1180.17

Ve diyelim ki USDCAD'deki toplam kâr değişti ve 3. satırı "USDCAD 115.64" ile değiştirmem gerekiyor.

Bu verileri tek boyutlu bir dize dizisi olarak okudum, ancak bir metin dosyasındaki yalnızca bu öğeyi değiştiremiyorum (birisi bir işlev yazabilir mi?)

Yoksa buhar banyosu yapmamak ve tüm dizinin üzerine yazmamak daha mı iyi?

Sadece verilerim farklı çiftler üzerinde duran danışmanlardan geliyor - her çiftin kendi çizgisi var - elbette sadece 1 öğeyi değiştirmek daha iyi olurdu.

 

Merhaba!!! Lütfen HELP'den bir örnekle yardım edin

//------------------------------------------------ --------------------
// olağanuzman.mq4
// MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır.
//------------------------------------------------ --------------- 1 --
#property telif hakkı "Telif hakkı © Kitap, 2007"
#özellik bağlantısı "http://AutoGraf.dp.ua"
//------------------------------------------------ --------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//------------------------------------------------ --------------- 3 --
#include <Variables.mqh> // Değişkenlerin açıklaması
#include <Check.mqh> // Kullanımın yasallığı kontrol ediliyor. programlar
#include <Terminal.mqh> // Siparişler için muhasebe
#include <Events.mqh> // Etkinlik izleme işlevi, güncellendi.
#include <Inform.mqh> // Bilgi fonksiyonu
#include <Trade.mqh> // Ticaret fonksiyonu
#include <Open_Ord.mqh> // Belirtilen türden bir sipariş açılıyor
#include <Close_All.mqh> // Belirtilen türdeki tüm siparişler kapatılıyor
#include <Tral_Stop.mqh> // Türdeki tüm siparişlerin StopLoss'u değiştiriliyor
#include <Lot.mqh> // Lot sayısını hesapla
#include <Criterion.mqh> // Ticaret kriterleri
#include <Errors.mqh> // Hata işleme işlevi.
//------------------------------------------------ --------------- 4 --
int init() // Özel. başlatma işlevi
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//Min. mesafe
Terminal(); // Sipariş muhasebesi fonksiyonu
dönüş; // init()'ten çık
}
//------------------------------------------------ --------------- 5 --
int start() // Özel. başlatma işlevi
{
if(Check()==yanlış) // Kullanım koşulları ise..
dönüş; // ..yürütülmedi, çık
PlaySound("tik.wav"); // Her tikte
Terminal(); // Sipariş muhasebesi fonksiyonu
Etkinlikler(); // Olaylar hakkında bilgi
Ticaret(Kriter()); // Ticaret fonksiyonu
bilgi(0); // Nesneleri yeniden renklendirmek için
dönüş; // başlangıçtan çık()
}
//------------------------------------------------ --------------- 6 --
int deinit() // Özel. tanımla() işlevi
{
bilgilendir(-1); // Nesneleri kaldırmak için
dönüş; // deinit()'ten çık
}
//------------------------------------------------ --------------- 7 --

2) Sadece depolama yerinde mi yoksa kodun tasarımında mı?

Sorular şunlardır: 1) include dosyaları arasındaki fark nedir (#include<...> ve #include "..."), 3) Ve içe aktarılan işlevler (#import) #include yönergesinden nasıl farklıdır?

HELPA olağanexpert.mq4 dosyasından alınan örnek, #include dizininin dosyasında <> köşeli parantezlere bakılırsa, dahil edilen dosyalar üzerinde oluşturulan Expert Advisor'ın kompozisyonunu gösterir.

Sorular: Include\file #include <Variables.mqh> // Örneğe göre oluştururken değişkenlerin açıklaması:

//------------------------------------------------ --------------------
// Değişkenler.mqh
// MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır.
//------------------------------------------------ --------------- 1 --
// Global değişkenlerin açıklaması
dış çift Lot=0.0; // Parti sayısı
harici int Yüzde=0; // Tahsis edilen fonların yüzdesi
harici int StopLoss =100; // Yeni siparişler için StopLoss (puan)
harici int TakeProfit=40; // Yeni siparişler için TakeProfit (puan)
harici int TrailingStop=100; // Piyasa emirleri için TralingStop (nokta)
//------------------------------------------------ --------------- 2 --
int
Level_new, // Minimum mesafe için yeni değer
Level_old, // Minimum mesafenin önceki değeri
Mas_Tip[6]; // Sipariş türleri dizisi
// [] sipariş tipi: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//------------------------------------------------ --------------- 3 --
çift
Lots_New, // Yeni siparişler için parti sayısı
Mas_Ord_New[31][9], // Mevcut sipariş dizisi ..
Mas_Ord_Old[31][9]; // .. Ve yaşlı
// 1. dizin = sipariş seri numarası
// [][0] tanımlı değil
// [][1] açık oran siparişler (mutlak döviz kuru)
// [][2] Emrin StopLoss'u (oranın mutlak değeri)
// [][3] TakeProfit emirleri (oranın mutlak değeri)
// [][4] sipariş numarası
// [][5] say. çok ord. (mutlak döviz kuru)
// [][6] sipariş türü. 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] sihirli numarayı sipariş et
// [][8] 0/1 bir yorum olduğu gerçeği
//------------------------------------------------ --------------- 4 --

Derlerken, bir hata veriyor -- '\end_of_program' - tanımlı fonksiyon yok ne anlama geliyor ve bu örneğe sonunda bir şey eklemek gerekli mi?

Ve dahil edilen dosyalar şöyle görünmeli mi yoksa başlığa mı eklenmeli:

#property telif hakkı "Telif hakkı © 2004, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net/"
#özellik kitaplığı
//+------------------------------------------- --------------------+
//| dönüş hatası açıklaması |
//+------------------------------------------- --------------------+

örneğin, ( olağanuzman.mq4 // MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır. ) #include <Check.mqh> içerir // Kullanımın yasallığı kontrol ediliyor. Programlar Bu başlık olmadan hata veriyor (Başlat fonksiyonu bulunamadı ve çalıştırılamaz). Ve onunla her şey yolunda!?

Veya dosyalar dahil, yalnızca (kütüphaneler) adresindeki işlev kitaplığında bulunan kullanıcı tanımlı işlevlerin bir açıklamasını ve kullanılmasının gerekli olup olmadığını içerir. funkt. özel işlev başlatmayı kullanın. Eğer bilirkişinin dosyasındaysa?

 
Las-tochka :

Merhaba!!! Lütfen HELP'den bir örnekle yardım edin

//------------------------------------------------ --------------------
// olağanuzman.mq4
// MQL4 eğitiminde örnek olarak kullanılması amaçlanmıştır.
//------------------------------------------------ --------------- 1 --
#property telif hakkı "Telif hakkı © Kitap, 2007"
#özellik bağlantısı "http://AutoGraf.dp.ua"
//------------------------------------------------ --------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//------------------------------------------------ --------------- 3 --
#include <Variables.mqh> // Değişkenlerin açıklaması
#include <Check.mqh> // Kullanımın yasallığı kontrol ediliyor. programlar
#include <Terminal.mqh> // Siparişler için muhasebe
#include <Events.mqh> // Etkinlik izleme işlevi, güncellendi.
#include <Inform.mqh> // Bilgi fonksiyonu
#include <Trade.mqh> // Ticaret fonksiyonu
#include <Open_Ord.mqh> // Belirtilen türden bir sipariş açılıyor
#include <Close_All.mqh> // Belirtilen türdeki tüm siparişler kapatılıyor
#include <Tral_Stop.mqh> // Türdeki tüm siparişlerin StopLoss'u değiştiriliyor
#include <Lot.mqh> // Lot sayısını hesapla
#include <Criterion.mqh> // Ticaret kriterleri
#include <Errors.mqh> // Hata işleme işlevi.
//------------------------------------------------ --------------- 4 --
int init() // Özel. başlatma işlevi
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//Min. mesafe
Terminal(); // Sipariş muhasebesi fonksiyonu
dönüş; // init()'ten çık
}
//------------------------------------------------ --------------- 5 --
int start() // Özel. başlatma işlevi
{
if(Check()==yanlış) // Kullanım koşulları ise..
dönüş; // ..yürütülmedi, çık
PlaySound("tik.wav"); // Her tikte
Terminal(); // Sipariş muhasebesi fonksiyonu
Etkinlikler(); // Olaylar hakkında bilgi
Ticaret(Kriter()); // Ticaret fonksiyonu
bilgi(0); // Nesneleri yeniden renklendirmek için
dönüş; // başlangıçtan çık()
}
//------------------------------------------------ --------------- 6 --
int deinit() // Özel. tanımla() işlevi
{
bilgilendir(-1); // Nesneleri kaldırmak için
dönüş; // deinit()'ten çık
}
//------------------------------------------------ --------------- 7 --

2) Sadece depolama yerinde mi yoksa kodun tasarımında mı?

Sorular şunlardır: 1) include dosyaları arasındaki fark nedir (#include<...> ve #include "..."), 3) Ve içe aktarılan işlevler (#import) #include yönergesinden nasıl farklıdır?

HELPA olağanexpert.mq4 dosyasından alınan örnek, #include dizininin dosyasında <> köşeli parantezlere bakılırsa, dahil edilen dosyalar üzerinde oluşturulan Expert Advisor'ın kompozisyonunu gösterir.

Sorular: Include\file #include <Variables.mqh> // Örneğe göre oluştururken değişkenlerin açıklaması:

//------------------------------------------------ --------------------
// Değişkenler.mqh
// MQL4 eğitiminde örnek olarak kullanılması amaçlanmıştır.
//------------------------------------------------ --------------- 1 --
// Global değişkenlerin açıklaması
dış çift Lot=0.0; // Parti sayısı
harici int Yüzde=0; // Tahsis edilen fonların yüzdesi
harici int StopLoss =100; // Yeni siparişler için StopLoss (puan)
harici int TakeProfit=40; // Yeni siparişler için TakeProfit (puan)
harici int TrailingStop=100; // Piyasa emirleri için TralingStop (nokta)
//------------------------------------------------ --------------- 2 --
int
Level_new, // Minimum mesafe için yeni değer
Level_old, // Minimum mesafenin önceki değeri
Mas_Tip[6]; // Sipariş türleri dizisi
// [] sipariş tipi: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//------------------------------------------------ --------------- 3 --
çift
Lots_New, // Yeni siparişler için parti sayısı
Mas_Ord_New[31][9], // Mevcut sipariş dizisi ..
Mas_Ord_Old[31][9]; // .. Ve yaşlı
// 1. dizin = sipariş seri numarası
// [][0] tanımlı değil
// [][1] açık oran siparişler (mutlak döviz kuru)
// [][2] Emrin StopLoss'u (oranın mutlak değeri)
// [][3] TakeProfit emirleri (oranın mutlak değeri)
// [][4] sipariş numarası
// [][5] say. çok ord. (mutlak döviz kuru)
// [][6] sipariş türü. 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] sihirli numarayı sipariş et
// [][8] 0/1 bir yorum olduğu gerçeği
//------------------------------------------------ --------------- 4 --

Derlerken, bir hata veriyor -- '\end_of_program' - tanımlı fonksiyon yok ne anlama geliyor ve bu örneğe sonunda bir şey eklemek gerekli mi?

Ve dahil edilen dosyalar şöyle görünmeli mi yoksa başlığa mı eklenmeli:

#property telif hakkı "Telif hakkı © 2004, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.metaquotes.net/"
#özellik kitaplığı
//+------------------------------------------- --------------------+
//| dönüş hatası açıklaması |
//+------------------------------------------- --------------------+

örneğin, ( olağanuzman.mq4 // MQL4 eğitiminde örnek olarak kullanılmak üzere tasarlanmıştır. ) #include <Check.mqh> içerir // Kullanımın yasallığı kontrol ediliyor. Programlar Bu başlık olmadan hata veriyor (Başlat fonksiyonu bulunamadı ve çalıştırılamaz). Ve onunla her şey yolunda!?

Veya dosyalar dahil, yalnızca (kütüphaneler) adresindeki işlev kitaplığında bulunan kullanıcı tanımlı işlevlerin bir açıklamasını ve kullanılmasının gerekli olup olmadığını içerir. funkt. özel işlev başlatmayı kullanın. Eğer bilirkişinin dosyasındaysa?

Ders kitabından örneği aşağıdaki gibi okuyun - her şey orada ... Ekler programın bölümlerine dahildir (yapıcı olarak her biri tarafından gerçekleştirilen görevin başındaki içeriğe göre adlandırılır) - derlenmeleri gerekmez. Expert Advisor CAM derlenirken, eklemeler program metninde nasıl yazdığınıza bağlı olarak sırayla *.ex4 dosyasına yerleştirilir. Bu nedenle #include <Variables.mqh> // Değişkenlerin açıklaması programın 3. bloğunda İLK'tir. Onu bu bloğun sonuna taşımaya çalışın ve EA'yı derleyin - kaç tane hata olacağını göreceksiniz.
 
alsu :
......

Modu hesaplamanın daha doğru bir yolu şudur: ampirik bir dağılım fonksiyonu oluşturulur (frekans dağılımıyla karıştırılmamalıdır), ardından parçalı doğrusaldan düze enterpolasyon yapılır ve son olarak türevin maksimum noktasıdır. aranan. Böyle bir algoritma yukarıda sıralanan dezavantajlardan aridir ve küçük örneklem boyutlarında bile çok verimli çalışır. En azından, MQL'de sadece 50-100 elemanlı örnekler üzerinde karşılaştırılabilir sayıda aralıklarla mod bulma problemini çözmem gerekiyordu ve her şey yolundaydı. Tek bir dezavantaj var - enterpolasyonlarda, kural olarak, elbette niteliksel olarak düzeltmek istemiyorsak, hesaplamaların hızı keskin bir şekilde düşer.

Alexey, çok teşekkür ederim .... Bu işlevi oluşturmanın genel prensibi benim için netleşti))))
 
Tünaydın! Bana Yorumun ("") ne anlama geldiğini söyle, bu durumda işlev çıktısı ne olacak?
 
Chuma :
Tünaydın! Bana Comment("") ne anlama geldiğini söyle, bu durumda fonksiyon çıktısı ne olacak?
tırnak içinde metin içeren kutu
 
Comment() , metni pencerede değil, grafiğin sol üst köşesinde görüntüler.
 
Bir tutarsızlıkla karşılaştım, açılış fiyatlarında çalışan bir gösterge var ve bu göstergenin sinyallerini kullanarak işlem gördüğü TF'nin yerleştirildiği bir danışman var. Baykuş ve test cihazını 15 dakikalığına koydum - açılış fiyatlarında kesin bir sonuç elde ediliyor. Ancak aynı zamanda test cihazında, örneğin 1 dakika - açılış fiyatlarında ayarlarsanız, sonuç çok radikal değildir, ancak değişir. Gitmeyeceğim, sorun ne? Yeni bir saatin bir dakikalık açılış fiyatı ile bir saatlik açılış fiyatının örtüşmediği ortaya çıktı??? Yoksa testçinin maliyeti mi? Bana köpeğin nereye gömüldüğünü söyle?
 
moskitman :
tırnak içinde metin içeren kutu

Yalnızca parantez içinde tırnak işaretleri olduğu durumu kastetmiştim: Yorum ("")

 
Chuma :

Sadece parantez içinde alıntılar olduğunda durumu kastetmiştim: Comment("")

Önceki yorumları temizler.