Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 70

 

Sevgili forum kullanıcıları!

Lütfen yardım edin, problemler aşağıdaki gibidir: 1) Kodda nasıl yazılır, diyelim ki SATIŞ'ta bir anlaşma, kanalın üst sınırına ulaşıldığında açılır ve alt sınıra ulaşıldığında kapanır; 2) Bir sinyalde sadece bir işlem açılmalıdır; 3) Bir danışman kurulurken hemen bir anlaşma açılır, ancak anlaşmanın sadece kanal hattına ulaşıldığında açılması gerekir.

Yardım için minnettar olacağım.

harici çift Lot = 0.1;
harici int TakeProfit = 30; // kar elde et (negatif sayı veya kullanılmaması için sıfır);
harici int StopLoss = 20; // Satın almak için Zararı Durdur seviyesi;
dış int kayma = 2; // kayma
extern string Yorum = "Keller";
harici int Sihir = 333;

extern string Indi = "Gösterge verileri";
extern string TimeFrame = " geçerli zaman çerçevesi";
harici int MA_Period = 10; // 0 - SMA, 1 - EMA, 2 - SMMA, 3 - LWMA
harici int Mode_MA = 0; // 0 - Kapat, 1 - Açık, 2 - Yüksek, 3 - Düşük, 4 - Ortanca, 5 - Tipik, 6 - Ağırlıklı
harici int Fiyat_Türü = 5;

çift FiyatYüksek, FiyatDüşük, SL, TP;
int bileti;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
if (Rakamlar ==3 || Rakamlar ==3) // beş basamaklı bir komisyoncu için
{
Kâr Al *= 10;
StopLoss *= 10;
kayma *= 10;
}
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
PriceHigh = iCustom(Symbol(), 0, "Keller", TimeFrame, MA_Period, Mode_MA, Price_Type, 0, 0); // kırmızı üst tampon 0
PriceLow = iCustom(Symbol(), 0, "Tma", TimeFrame, MA_Period, Mode_MA, Price_Type, 2, 0); // kırmızı alt tampon 2

if (Bid >= PriceHigh && CountSell() == 0) // burada Countsell, siparişlerin her onayda değil, birer birer açıldığının kontrolüdür
{
SL = NormalizeDouble(Teklif + StopLoss * Nokta, Rakamlar);
TP = NormalizeDouble(Teklif - Kâr Al * Puan, Rakamlar);

bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, Comment, Magic, 0, Red); // burada 0, SL ve TP (0, AB hesapları için ayarlanmıştır) ve son 0, bir denemedir
if (bilet > 0) // açık sipariş kontrolü
{
if (OrderSelect (bilet, SELECT_BY_TICKET, MODE_TRADES) == doğru)
OrderModify(bilet, OrderOpenPrice(), SL, TP, 0); // burada 0 ifadedir
}
}


if (Ask <= PriceLow && CountBuy() == 0)// burada Countsell, siparişlerin her seferinde değil, birer birer açıldığını kontrol eder
{
SL = NormalizeDouble(Ask - StopLoss * Nokta, Rakamlar);
TP = NormalizeDouble(Ask + TakeProfit * Puan, Rakamlar);

bilet = OrderSend(Symbol(), OP_BUY, Lot, Sor, Slippage, 0, 0, Comment, Magic, 0, Blue); // burada 0, SL ve TP (0, AB hesapları için ayarlanmıştır) ve son 0, bir denemedir
if (bilet > 0) // açık sipariş kontrolü
{
if (OrderSelect (bilet, SELECT_BY_TICKET, MODE_TRADES) == doğru)
OrderModify(bilet, OrderOpenPrice(), SL, TP, 0); // burada 0 ifadedir
}
}


if (Bid >= PriceHigh && CountBuy() > 0) // fiyat kanalın üst sınırına ulaştıysa ve sipariş sayısı 0'dan büyükse
{
for (int i=OrdersTotal()-1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)== doğru)
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY) // bunun bizim satın alma siparişimiz olup olmadığını kontrol edin
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black); // kanalın üst sınırındaki sırayı kapat
}
}
}
if (Ask <= PriceLow && CountSell() > 0) // fiyat kanalın alt sınırına ulaştıysa ve sipariş sayısı 0'dan büyükse
{
for ( i=OrdersTotal()-1; i >= 0; i--) // satın alma için değişken tanımı artık int olarak ayarlanmadı
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)== doğru)
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL) // bunun bizim satış siparişimiz olup olmadığını kontrol edin
OrderClose(OrderTicket(), OrderLots(), Sor, Kayma, Siyah); // kanalın alt sınırındaki sırayı kapat
}
}
}

dönüş(0);
}

//+------------------------------------------- --------------------+
int CountSell()// check - devam eden satış emirlerinin sayısı
{
int Sayı = 0;
for (int ticaret = OrdersTotal() - 1; ticaret >=0; ticaret --)
{
OrderSelect(ticaret, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_SEL)
Say++;
}
}
dönüş(Sayı);
}
//+------------------------------------------- --------------------+
int CountBuy()// check - devam eden satın alma siparişlerinin sayısı
{
int Sayı = 0;
for (int ticaret = OrdersTotal() - 1; ticaret >=0; ticaret --)
{
OrderSelect(ticaret, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
Say++;
}
}
dönüş(Sayı);
}

 
ekran ekliyorum
 
artmedia70 :

Hayır, ayrılmadılar. Koduna baktım ve "bakmadan" yanıtını verdim. Hattınız:

- döngü indeksi i'ye toplam yatay çizgi sayısına eşit bir değer atar. Bunlardan 3 tanesine sahipseniz, o zaman döngü 2'den 0'a olacaktır. Ve orada döngünüzde ne olduğu net değil, ancak 2'den 0'a sadece üç yineleme olacak.


Evet - işte, işte ... Ve tam olarak endişelendiğim şey buydu. Gerçek şu ki, özel olarak tasarlanmış deneyler olmadan, sadece gözlemlere göre, yine de başka nesnelerin varlığında çalıştı.

 for ( int i= ObjectsTotal ( OBJ_HLINE )- 1 ; i>= 0 ; i--) 

Ve hazırlıksız, doğru çalıştı. Ama şüpheler tam olarak tarif ettiğiniz şeyde ortaya çıktı. Bu nedenle bu konuya açıklık getirmek istedim.

Ve görüşlerinizin varsayımımı tutarlı bir şekilde doğrulamasına sevindim. Bu konuda kesinliğe ulaşıldığını varsayalım.

Bir kez daha çok teşekkür ederim!

 
bistreevseh :


Bir göstergem var, özel, bir histogramla gidiyor ve tüm değerler maksimum, önemli, sadece histogramdaki çubukların rengi, giriş parametresi yok, arabellek 2: 0 - kırmızı rengiyle çubuk ve 1 - çubuğun mavi rengi, 0'da tamponun değeri değiştirmediğini, ancak 1'de değiştiğini öğrendiğim Imperial yöntemini kullanıyorum. Bir işlemin kriterlerini nasıl yazacağımı bulamıyorum, lütfen nasıl olduğunu açıklayın, şimdiden teşekkürler.


Bir gösterge kaynak kodu varsa, o zaman hiç de zor değil: Kaynak koduna bakın ve göstergedeki rengi değiştirme koşullarını bulun. Onlara dayanarak bir sinyal oluşturuyoruz. Bu 2 şekilde yapılabilir: ilki, gösterge kodu değişmezken arabellek değerlerini değiştirme koşullarını analiz etmek için bir "sarmalayıcı" yazarak, iCustom() kullanarak , ikincisi ise gösterge kodunu bir EA'dan çağrılabilen işlev. Her iki yöntem de sitedeki makalelerde anlatılmaktadır.

Örneğin, düzleştirilmiş Heikin-Ashi'ye - sitede dolaşmaya - ilgi varsa, bu gösterge hakkında bir tartışma vardı, hatırladığım kadarıyla hem algoritmanın doğruluğunu hem de sinyal analizini tartıştılar. Kodu açıktır ve kod tabanındadır (orada pek çok şey vardır).

Gösterge bir tür benzersiz ise ve kaynak kodu olmadan, mesele çok daha karmaşıktır: bu arada, bu arada, harcanan çabayı her zaman haklı çıkarmayan tersine mühendislik.

 
VladislavVG :

Bir gösterge kaynak kodu varsa, o zaman hiç de zor değil: Kaynak koduna bakın ve göstergedeki rengi değiştirme koşullarını bulun. Onlara dayanarak bir sinyal oluşturuyoruz. Bu 2 şekilde yapılabilir: ilki, gösterge kodu değişmezken arabellek değerlerini değiştirme koşullarını analiz etmek için bir "sarmalayıcı" yazarak, iCustom() kullanarak, ikincisi ise gösterge kodunu bir EA'dan çağrılabilen işlev. Her iki yöntem de sitedeki makalelerde anlatılmaktadır.

Örneğin, düzleştirilmiş Heikin-Ashi'ye - sitede dolaşmaya - ilgi varsa, bu gösterge hakkında bir tartışma vardı, hatırladığım kadarıyla hem algoritmanın doğruluğunu hem de sinyal analizini tartıştılar. Kodu açıktır ve kod tabanındadır (orada pek çok şey vardır).

Gösterge bir tür benzersiz ise ve kaynak kodu olmadan, mesele çok daha karmaşıktır: bu arada, bu arada, harcanan çabayı her zaman haklı çıkarmayan tersine mühendislik.


çok teşekkür ederim, deneyeceğim. "Sarmalayıcı" hakkında makaleler bulmamda ve gösterge kodunu dönüştürmemde bana yardımcı olabilir misiniz, çünkü Korkarım bunu bir arama sorgusu olarak yorumlayamayacağım.
 
Bana yardım et lütfen. Gösterge, önceki günün en yüksek ve en düşük çizgilerini çizer . Her gün tarihe çizgiler çizmesi gerekiyor. Teşekkür ederim.
Dosyalar:
line.mq4  3 kb
 
prom18 :
Bana yardım et lütfen. Gösterge, önceki günün en yüksek ve en düşük çizgilerini çizer. Her gün tarihe çizgiler çizmesi gerekiyor. Teşekkür ederim.
Dosyalar:
line_1.mq4  3 kb
 
bistreevseh :

çok teşekkür ederim, deneyeceğim. "Sarmalayıcı" hakkında makaleler bulmamda ve gösterge kodunu dönüştürmemde bana yardımcı olabilir misiniz, çünkü Korkarım bunu bir arama sorgusu olarak yorumlayamayacağım.


https://www.mql5.com/ru/forum/114117 burada gösterge sinyallerini yorumlamak için bir sarmalayıcı işlevi oluşturmaya bir örnek verilmiştir

Gösterge kodlarını kullanmayla ilgili makaleler:

https://www.mql5.com/ru/articles/1456

https://www.mql5.com/ru/articles/1457

 
Vinin :



Teşekkür ederim!
 
VladislavVG :


https://www.mql5.com/ru/forum/114117 burada gösterge sinyallerini yorumlamak için bir sarmalayıcı işlevi oluşturmaya bir örnek verilmiştir

Gösterge kodlarını kullanmayla ilgili makaleler:

https://www.mql5.com/ru/articles/1456

https://www.mql5.com/ru/articles/1457


tekrar, çok teşekkür ederim