Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 97

 
Vladon :

Fikir sizin, kod değil. Kod programcı tarafından yazılmıştır, sizin tarafınızdan değil, TK'yi siz yazdınız.

Hayal edin - Windows kullanıcıları açık kaynak talep ediyor - saçma değil mi?

Anladığım kadarıyla uzmanların yazdığı kod MetaQuotes şirketine mi, yoksa şahsen size mi ait?

Ve burada Windows, öncelikle, kullanıcıların bunu talep etme hakları yoktur. bu ürün macrosoftware'e ait, burada biraz daha farklı söylemek lazım, macrosoftware onu yazan programcılardan ürününün açık kaynak kodunu istemeye başlayacak ve parmaklarını büküp vermeyecekler.

 
Vladon :

AAA :-=) yani kaynak hala savunmadan önce orada mı? o zaman başka ne istiyorsun Ayrıca kimsenin size korumalı bir Uzman Danışmanın açık kaynak kodunu vermeyeceği söylendi, ben de vermeyeceğim. Ve bir talep olsaydı    tamamlandıktan sonra talep, ürününüzün kaynağı.

Görevi reddederdim.

O zaman başka neye ihtiyacın var? Korumadan önce bir kaynak kodu vardır, yani korumalı bir danışmanla aynıdır. aynı şekilde çalışmalıdırlar.

Expert Advisor'ın çalışması sırasında iyileştirmeler yapıldı, çeşitli fonksiyonlar eklendi vb. ve şimdi bu iyileştirmelerle birlikte açık kod yok.
 
ComplexFX :
Expert Advisor'ın çalışması sırasında iyileştirmeler yapıldı, çeşitli fonksiyonlar eklendi vb. ve şimdi bu iyileştirmelerle birlikte açık kod yok.

o zaman bence gerçek senin tarafında.

Anladığım kadarıyla uzmanların yazdığı kod MetaQuotes şirketine mi, yoksa şahsen size mi ait?

Kod yazarsam, kişisel olarak bana. MetaQuotes programlama diline sahiptir.

her şey dürüst.

 
Expert Advisor'da açık siparişin nasıl kapatılacağını anlatır mısınız? Zararı durdur veya kar al ile bir pozisyonun nasıl kapatıldığı açıktır. Ve manuel olarak nasıl yapılır?
 
pogeon :
Expert Advisor'da açık siparişin nasıl kapatılacağını anlatır mısınız? Zararı durdur veya kar al ile bir pozisyonun nasıl kapatıldığı açıktır. Ve manuel olarak nasıl yapılır?
Mql5'te, açık bir pozisyon, toplam hacmi kapatılan pozisyonun hacmine eşit olan zıt emirlerle kapatılır.
 
progeon :
Expert Advisor'da açık siparişin nasıl kapatılacağını anlatır mısınız? Zararı durdur veya kar al ile bir pozisyonun nasıl kapatıldığı açıktır. Ve manuel olarak nasıl yapılır?

Veya CTrade sınıfını kullanın, bir işlev var

trade.PositionClose( _Symbol );

bunun gibi bir şey

https://www.mql5.com/en/docs/standardlibrary/tradeclasses/ctrade/ctradepositionclose

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / PositionClose
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / PositionClose
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade / PositionClose - Документация по MQL5
 
Yedelkin : mql5'te, açık bir pozisyon, toplam hacmi kapalı pozisyonun hacmine eşit olan zıt emirlerle kapatılır.

lazarev-dm : Veya CTrade sınıfını kullanın, bir işlev var

CTrade sınıfının PositionClose() yöntemi de zıt emirlere sahip bir pozisyonu kapatır .

 

Sevgili programcılar, lütfen bana aşağıdaki durumun çözüm yöntemini veya nedenini söyleyin. Son zamanlarda MQL5 üzerinde çalışıyorum ve henüz yeterli deneyimim yok.

Sınıfları kullanmadan normal bir Expert Advisor'dan çok para birimli Expert Advisor yapmaya çalıştım. Ne yazık ki, çoklu para birimi hakkında ayrıntılı makaleler bulamadım.

Programın bir sonraki parçasını yazdı.

int sayı_instr; // bu, para birimi adları dizisindeki para biriminin sıra sayısıdır

string İsim_sembol[6] = { "AUDUSD", "EURUSD", "GBPUSD", "USDCAD", "USDCHF", "USDJPY" } ; //para birimi adlarının metin dizisi: [0]-"AUDUSD", 1-"EURUSD", 2-"GBPUSD", 3-"USDCAD" vb.

double Close_buf[], Open_buf[], High_buf[], Low_buf[]; // mum parametreleri için temel diziler

tarihsaat Time_buf[]; // bar açılış zamanlarının temel dizisi

double Close_H1[6][150], Open_H1[6][150], High_H1[6][150], Low_H1[6][150]; // H1 zaman çerçevesi için çok para birimli Uzman Danışmanın şamdan parametreleri için diziler

// dizideki satır sayısı, analiz edilen para birimlerinin sayısına karşılık gelir

tarihsaat Saat_H1[6]][150]; // bar açılış zamanları dizisi

double Close_H4[6][150], Open_H4[6][150], High_H4[6][150], Low_H4[6][150]; // H4 zaman çerçevesi için çok para birimli Uzman Danışmanın mum çubuklarının parametreleri için diziler

// dizideki satır sayısı, analiz edilen para birimlerinin sayısına karşılık gelir

tarihsaat Saat_H4[6]][150]; // bar açılış zamanları dizisi



int OnInit()

{

}

geçersiz OnDeinit(const int nedeni)
{
//---
ArrayFree(Zaman_tampon);
ArrayFree(Close_buf);
ArrayFree(open_buf);

ArrayFree(yüksek_tampon);

ArrayFree(Düşük_tampon);

}


geçersiz OnTick()

{

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

İşte yeni bir barın açılış saatinin meydana geldiği anı belirlemek için programın bir parçası Nev_Time[0]

ve işlenen çubuğun seri numarası, test etme veya Schetchik_svech ticareti sürecinde tutulur

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

ArraySetAsSeries(Close_buf, true); // close_array dizisi için indekslemeyi zaman serilerinde olduğu gibi ayarla
ArraySetAsSeries(Open_buf, true); // open_array dizisi için indekslemeyi zaman serilerinde olduğu gibi ayarla
ArraySetAsSeries(Yüksek_tampon, doğru); // high_array dizisi için indekslemeyi zaman serilerinde olduğu gibi ayarla
ArraySetAsSeries(Low_buf, true); // low_array dizisi için indekslemeyi zaman serilerinde olduğu gibi ayarla

ArraySetAsSeries(Time_buf, true); // time_array dizisi için indekslemeyi zaman serilerinde olduğu gibi ayarla


for( nomer_instr=0; nomer_instr<=5; nomer_instr++ )
{


//============================================== ========================
CopyTime( Name_symbol[nomer_instr], PERIOD_H1,0,160,Time_buf); // her çubuk için geçmiş zaman verilerini ara belleğe kopyalayın
CopyClose( Name_symbol[nomer_instr], PERIOD_H1,0,160,Close_buf); // her çubuk için geçmiş verileri arabellek kapanışına kopyalayın
CopyOpen( Name_symbol[nomer_instr], PERIOD_H1,0,160,Open_buf); // her çubuk için açık geçmiş verilerini arabelleğe kopyala
CopyHigh( Name_symbol[nomer_instr], PERIOD_H1,0,160,High_buf); // her çubuk için yüksek geçmiş verilerini arabelleğe kopyalayın
CopyLow( Name_symbol[nomer_instr], PERIOD_H1,0,160,Low_buf); // her çubuk için düşük geçmiş verileri arabelleğe kopyala
//============================================== ========================

for( i=1; i<=145; i++ )
{
Time_H1[nomer_instr][i]=Time_buf[i];
Close_H1[nomer_instr][i]=Close_buf[i];
Open_H1[nomer_instr][i]=Open_buf[i];
High_H1[nomer_instr][i]=Yüksek_buf[i];
Low_H1[nomer_instr][i]=Low_buf[i];
}

//============================================== ===================================
// saatlik zaman çerçevesinin şamdan parametrelerinin oluşturulan verilerinin zaman kaymasını kontrol etme

if( Schetchik_svech > 8 && Schetchik_svech < 15 )
{
if( sayı_instr == 5 )
{
Uyarı("============================================ =" );
Alert(" çubuk numarası = ",Schetchik_svech,", çubuğun açılma zamanı Nev_Time[0]=",Nev_Time[0]);
Alert(" alet numarası: nomer_instr=",nomer_instr,", alet: Name_symbol[nomer_instr]=",Name_symbol[nomer_instr]);
Uyarı("---------------------------------------------- - ---------");
for( i=1; i<=5; i++ )
{
Alert( "i=",i,", Time_H1[nomer_instr][i]=",Time_H1[nomer_instr][i],", Close_H1[nomer_instr][i]=",Close_H1[nomer_instr][i]);
}
}
}
//============================================== ===================================

} // H1 zaman diliminde kullanılan para birimleri için döngünün sonu


//############################################

H4 zaman dilimi için programın benzer bir parçası burada

//##########################################


} // OnTick() fonksiyonunun sonu


Programın bu parçasının performansını kontrol etmek benim için beklenmedik bir sonuç ortaya çıkardı:

- H1 durumunda, danışmanın bulunduğu çizelge için çubuk parametrelerinin sonuçlandırılması durumunda, sıfırın açılması ile ilk çubukların bir saat içinde açılması arasında bir zaman farkı var.

Örneğin, EA EURUSD grafiğindedir ve sıfır çubuğunun açılma anı Nev_Time[0]= 2011.01.03 13:00:00, o zaman 1. çubuğun açılış zamanı Time_H1[1][1]'dir. = 2011.01.03 12:00:00

Sonuç sağduyu ile uyumludur.

- Şimdi danışman aynı grafikte ve AUDUSD gibi diğer para birimlerinin verilerini analiz ediyoruz . Sahibiz:

sıfır çubuğunun açılma anı Nev_Time[0]= 2011.01.03 13:00:00, ardından 1. çubuğun açılış zamanı Time_H1[1][1]= 2011.01.03 11:00:00

Bu sonuç zaten kabul edilemez, ancak makalelerde bu etkinin ortaya çıkmasının nedenlerini bulamadım.

Lütfen bana bu talihsizlikten nasıl kurtulacağımı söyleyin, peki, her para birimi için aynı danışmanı yazmayın.

İlginiz için teşekkür ederim.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Boris.45 : sıfır çubuğunun açılış anı Nev_Time[0]= 2011.01.03 13:00:00, ardından 1. çubuğun açılış saati Time_H1[1][1]= 2011.01.03 11:00:00
Time_H1[1][0] ne döndürür?
 
Yedelkin :

Time_H1[1][0] ne döndürür?

Dizinin bu öğesini kullanmıyorum, çünkü gelecekte, son 5 çubukta hemen fraktal arama algoritmasına dönüyorum. Ve Time_H1[1][0], bu çubuğun parametrelerinin henüz oluşturulmadığı sıfır çubuğunun açılış zamanıdır. Belki yanılıyorum, ama kendi deneyimlerime göre zaman serileri oluşturmak için sıfır çubuk parametresi kullanmanın bunların bozulmasına yol açtığını gördüm.

Neden: