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

 
chief2000 >> :

Bir aracının MT'sinden bir CSV dosyasını (1999'dan 1 dakika) dışa aktardım. MT'ye başka bir komisyoncu almaya çalıştım - 1 dakikam var

sorun değil, 1999'dan beri. Ama 2. MT'de 5, 15 dakika vs. nasıl elde edilir anlamıyorum. çizelgeler? - Yani 1 dakikayı içe aktardıktan sonra

5 dakikalık grafik ve MT, zaten sahip oldukları 1 dakikadan dönüştürmek yerine bunları internetten indirmeye çalışıyor gibi görünüyor.

Aşırı yüklenmiş MT - yardımcı olmadı.

- 1 DK'yi daha yüksek zaman dilimlerine dönüştürmek için normal bir çözüm var mı?

Eh, doğal olarak, bir özgeçmiş olacak, neden birdenbire dakikalardan dönüştürülmesi gerekiyor.

Orijinal CSV'yi alabilir ve çıktı dosyalarındaki tüm standart zaman dilimlerini almak ve içe aktarmak için kendi yazdığı bir programla çalıştırabilirsiniz.

 

Merhaba!

Hiçbir şekilde basit bir algoritma uygulayamıyorum:

Alım/satım sonrası 2 bardan sonra emri kapatma.

Zamanlayıcıdan daha iyi bir şey düşünemiyorum, ancak zamanlayıcının zaman çerçevesiyle bir bağlantısı var ve buna n çubukla ihtiyacım var.

 

Herkese tekrar tekrar merhaba, kendime cevap veremediğim bir soru.

Bir koşul göründüğünde sipariş vermeyi eğitmek için bir Uzman Danışman yazıyorum. Görev basit: sadece bir pozisyon ticareti yapmak. Böylece fiyat MA10'dan daha yüksekse - satın alın, daha düşükse - satın. Ayrıca, sipariş sihirlerini kullanma olasılığını da test ediyorum - böylece uzman tam olarak kendisinin verdiği emirleri kapatıyor. Ayrıca, diyelim ki, alış ve satış koşullarının ikinci bir versiyonu var (henüz eklemedim). Ve böylece, emrin hangi koşula ait olduğunu kendisi belirler - sihir, bir pozisyonun açılmasına neden olan işlevde ayarlanır. Ayrıca şartlara göre en başta pozisyon olup olmadığına karar vermeli ve ya satın almak için koşullar aramaya ya da satmak için koşullar aramaya başlamalıdır.


İşte kod:


// Мувинг и цена
double MA10;
double Price;
// Есть или нет позиция и ее номер
int Pos;
int Magic;
double Lot=0.1;
double SL;
double TP;
int Slippage=3;

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

void start()
{
MA10 = iMA(NULL,0,10,0,0,0,0);
Price = Bid;

CheckPos();
}

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

void CheckPos()
{
if(Pos==0)
CheckBuy();
CheckSell();
}

//--------------------------------------------------------------------
// Поиск условий для покупки и продажи
//--------------------------------------------------------------------

void CheckBuy()
{
if (NormalizeDouble(Price,Digits) > NormalizeDouble(MA10,Digits))
Magic=10;
Buy();
return;
}

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

void CheckSell()
{
if (NormalizeDouble(Price,Digits) < NormalizeDouble(MA10,Digits))
Sell();
return;
}

//--------------------------------------------------------------------
// Выставление ордеров
//--------------------------------------------------------------------

void Buy()
{
string Symb=Symbol();
Pos=1;

OrderSend(Symb, OP_BUY, Lot, Ask, Slippage, SL, TP, NULL, Magic);
return;
}
//--------------------------------------------------------------------

void Sell()
{
Pos=0;
OrderClose(Magic, Lot, Bid, Slippage);
return;
}


Ve işte burada, enfeksiyon, yalnızca bir pozisyonla işlem yapması gerektiği gerçeğine rağmen (eğer varsa - satış koşulları arıyoruz, hayır - satın alma koşulları arıyoruz), çok sayıda pozisyon açıyor ve sonra onları kapatmaz. Ben zaten kafamı kırdım. Bana neyin yanlış olduğunu söyle?

 
sigma7i >> :

Merhaba!

Hiçbir şekilde basit bir algoritma uygulayamıyorum:

Alım/satım sonrası 2 bardan sonra emri kapatma.

Zamanlayıcıdan daha iyi bir şey düşünemiyorum, ancak zamanlayıcının zaman çerçevesiyle bir bağlantısı var ve buna n çubukla ihtiyacım var.


Açık emirleri incelersiniz, ne zaman açıldıklarına bakar ve şimdiki zamanla karşılaştırırsınız, iki çubuk geçmiş ve kapatıyorsunuz.
 
splxgf >> :

Eh, doğal olarak, bir özgeçmiş olacak, neden birdenbire dakikalardan dönüştürülmesi gerekiyor.

Orijinal CSV'yi alabilir ve çıktı dosyalarındaki tüm standart zaman dilimlerini almak ve içe aktarmak için kendi yazdığı bir programla çalıştırabilirsiniz.

MT5 ile kafam karışmış gibi görünüyor - öyle görünüyor ki, 1 dakikadan daha yüksek zaman dilimleri oluşturuluyor, ancak MT4'te her şey eskisi gibi.

 
Vinin >> :

CodeBase'deki komut dosyası yatar ve dönem dönüştürücüsü denir

Teşekkür ederim!

 

Çizelgeler için bir dönem dönüştürücü yapacaktır, ancak bunu bir test cihazına besleyemezsiniz.

Oops, çalışma prensibine baktım, hala orada kayıtlı bir geçmiş dosyası yazılıyor. https://www.mql5.com/ru/code/8560

 

И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?

CheckBuy'da açık siparişler sıfırdan büyükse ekleyin, ardından çıkın.

 
splxgf >> :

CheckBuy'da açık siparişler sıfırdan büyükse ekleyin, ardından çıkın.

Evet, ekleyeceğim. Teşekkür ederim.

Ama yine de - neden benim pozisyonlarımı satın alıyor? Ne de olsa ilk başta hemen bir pozisyon varsa buraya gitme, oraya gider misin deniyor. Planlandığı gibi, bu kod parçasına bile girmemeli. Ya benim anlamadığım?

 
Jahspear >> :

Evet, ekleyeceğim. Teşekkür ederim.

Ama yine de - neden benim pozisyonlarımı satın alıyor? Ne de olsa ilk başta hemen bir pozisyon varsa buraya gitme, oraya gider misin deniyor. Planlandığı gibi, bu kod parçasına bile girmemeli. Ya benim anlamadığım?


Şimdi koda daha dikkatli baksam da yarım litre olmadan anlayamazsınız, şimdi ICQ'mu atacağım, orada ne yaptığımı açıklamaya çalışacağım.
Neden: