[Arşiv!] ÜCRETSİZ bir danışman yazacağım - sayfa 13

 

Merhaba!

Bilen biri bana aşağıdakileri koda nasıl doğru yazacağımı söyleyebilir mi:

Bir MACD Histogramm WIS göstergesi var. Kodunda histogram hesaplanır ve çubuklar MACD çizgisinin ve filtrenin yönüne bağlı olarak farklı renklerde renklendirilir.

int başlangıç()
{
int limit,i;
int counted_bars = IndicatorCounted();

if(counted_bars > 0) counted_bars--;
limit = iBars(NULL,0) - sayılan_barlar;

BufferResize(Filtre);
BufferResize(Histogram);

for(i = 0; i <= limit; i++)
MACD[i] = iMA(NULL, 0, FastMA, 0, MAMethod, MAAppliedPrice, i) - iMA(NULL, 0, SlowMA, 0, MAMethod, MAAppliedPrice, i);
for(i = 0; i <= limit; i++)
Signal[i] = iMAOnArray(MACD, iBars(NULL,0), SignalMA, 0, MAMethod, i);
for(i = 0; i <= limit; i++)
Histogram[i] = MACD[i] - Sinyal[i];
CalcFilter(Satır, limit);
for(i = limit; i >= 0; i--)
{
if(Histogram[i] > Histogram[i+1] && Filtre[i] > Filtre[i+1])
{
HistogramBekleKapat[i] = 0.0;
HistogramSat[i] = 0.0;
HistogramBuy[i] = Histogram[i];
}
if(Histogram[i] < Histogram[i+1] && Filtre[i] < Filtre[i+1])
{
HistogramBekleKapat[i] = 0.0;
HistogramSat[i] = Histogram[i];
HistogramSatın Al[i] = 0.0;
}
if((Histogram[i] >= Histogram[i+1] && Filtre[i] <= Filtre[i+1]) || (Histogram[i] <= Histogram[i+1] && Filtre[i] > = Filtre[i+1]))
{
HistogramWaitClose[i] = Histogram[i];
HistogramSat[i] = 0.0;
HistogramSatın Al[i] = 0.0;
}
}

dönüş(0);
}

Danışmanda, koşullardan birini, pozisyonları açmayı aşağıdaki durumlarda reçete etmeye çalışıyorum:

if(Histogram[i] > Histogram[i+1] && Filtre[i] > Filtre[i+1])
{
HistogramBekleKapat[i] = 0.0;
HistogramSat[i] = 0.0;
HistogramBuy[i] = Histogram[i];

ama sadece 2 kapalı çubuğu karşılaştırmam gerekiyor, yani birinci ve ikinci (sıfıra dokunma) ve hepsini (i-barlar) değil, yani, birinci ve ikinci çubukları karşılaştırmam gerekiyor ve eğer histogram ilk çubuğun ikinci ve filtre koşullarından ve danışmanın diğer koşullarından daha büyük, daha sonra satış için satın alın, tam tersine .... nasıl doğru yazılacağını söyleyin, lütfen, kendi kendini yetiştirmiş bir çaydanlık)

teşekkürler

 
kvg31 :

Herhangi bir karmaşıklık için bir danışman yazacağım. Ana şey, fikrin iyi olmasıdır. Nasıl kullanacağın umurumda değil: satarsan umurumda değil (para talep etmeyeceğim).

Not Bir göstergeye ihtiyacınız varsa, o zaman bana onu kullanmak istediğiniz stratejiyi açıklamanız gerekir.


Programlama hakkında hiçbir şey bilmiyorum ve genel olarak yeni başlayan biriyim.

Belki genel olarak böyle bir danışman zaten var:

"Roly-poly" ilkesine göre, iki EMA'nın kesişimi öncekini kapatır ve yenisini açar, EMA'lar değişken olmalıdır.

Bence H1, H4 oldukça alakalı.

 
riabusha :


Belki böyle bir danışman zaten var , genel olarak şöyle:

"Roly-poly" ilkesine göre, iki EMA'nın kesişimi öncekini kapatır ve yenisini açar, EMA'lar değişken olmalıdır.

Bence H1, H4 oldukça alakalı.

Orada. Bu, MT4 ile birlikte gelen standart Hareketli Ortalamadır . Sadece EMA değil, SMA (Basit Hareketli Ortalama) var ki bu da bir şeyleri değiştirmez. Tabii ki, danışmandaki MA türünü değiştirebilir veya hatta harici parametrelere taşıyabilirsiniz, ancak bundan bir kâse haline gelmeyecektir.
 

Merhaba.

Lütfen Ennay'de bir sipariş açan basit bir Uzman Danışman oluşturun, puan sayısı ve fiyat bunları geçip +'da kapandıysa, sipariş kapanır ve Artı'ya geri açılır. Negatifse, negatife döner.

Ayarlanacak parametreler parti büyüklüğü ve geçilecek nokta sayısıdır.

Şimdiden teşekkürler.

Saygılarımla, Dimitri.

 
kvg31 :

Herhangi bir karmaşıklık için bir danışman yazacağım. Ana şey, fikrin iyi olmasıdır. Nasıl kullanacağın umurumda değil: satarsan umurumda değil (para talep etmeyeceğim).

Not Bir göstergeye ihtiyacınız varsa, o zaman bana onu kullanmak istediğiniz stratejiyi açıklamanız gerekir.


Merhaba sevgili geliştiriciler. Lütfen SSL_fast_sBar_mtf göstergesine dayalı bir gösterge oluşturmama yardım edin.

Göstergenin, biri daha büyük bir "Lb" değerine ve diğeri daha küçük bir değere (veya daha büyük ve daha küçük bir ZAMAN ÇERÇEVESİ) sahip iki "çizgi" çizmesi gerekir. Renk çubuğunda ise

her iki "cetvel" de aynıdır (ve bir öncekinde farklıydı), sonra bir sonraki çubuğun başında açmak için bir sinyal vermeniz gerekir (bir ok koyun).

Oklar, grafik nesneleri değil, gösterge arabellekleri kullanılarak çizilmelidir. Harici parametreler penceresinde, her iki "cetvelin" verileri gereklidir

(parametrelerinin sonraki seçimleri için).

 

http://savepic.ru/1965498.gif

Göstergeye nasıl bir bağlantı ileteceğimi bilmiyorum. MQL4.com kitaplığında bulunur

 

Tünaydın!

Senden bir uzman olmanı rica ediyorum (peki, ben programcı değilim): ((.

Teknik özellikler:
1) İki Hareketli çizginin kesiştiği noktada 4 saatlik bir mum grafiği üzerinde çalışıyoruz. Ortalama : Bir ( Kırmızı ) dönem 18, yöntem Üstel , fiyatları kapatmak için Kapat , Sırasıyla ikinci ( Sarı ) dönem 8, yöntem de Üstel , fiyatları kapatmak için Kapat .

2) Ticaret boyutu 1 lot

3) Kavşaktan çizgilerin kesişimine kadar çalışıyoruz. Sarı ( Sarı ) çizgi, satın alma emrinin yukarı (kuzey) yönünde kırmızı çizgiyi ( Kırmızı ) geçer geçmez, çizgilerin ikincil kesişimi şimdi sarı çizgi kırmızı çizgiyi yukarıdan aşağıya doğru keser - yeni bir satış siparişinin eşzamanlı açılmasıyla açık bir siparişin sabitlenmesi ve benzeri.

4) Tüm işlemler için 35 puan stoploss ayarı yapılmıştır.

4 saatlik bir program, saatlik bir programdan farklı olarak, kesinlikle çalışarak gereksiz vücut hareketlerinden kaçınmanıza izin verir.

Sadece döviz çiftlerine bakarsanız, fikir kendisini haklı çıkarır (kaybedilen ticaret yoktur, en kötü durumda sıfır civarında), elbette, trendi hesaba katmanız ve Uzman Danışmanı göz önünde bulundurarak çalıştırmanız gerekir. O. Ve böylece, örneğin, bir euro / dolar çifti, 1 Eylül'den itibaren, geçmeden önce +139 puan satın alırsa, hemen +115 puan satarsa, ardından tekrar 12 Ekim'de geçmeden önce tekrar satın alırsa, +1184 puan daha. Ağustos ayında aynı resmi +368 puan satış, ardından aynı seviyeden alım satımı kayıpsız ve satış karında +181 puan aşağı çekiyoruz. Ayrıca, örneğin, ALTIN altın (burada komisyon 70 puandır, ancak puanın kendisi lot başına 2.5 $'dır) yani 31 Ağustos'tan itibaren +1789 puan satın alın, hemen +547 puan satın, +4557 puan satın alın, sıfır satın, + 4328 al, sat sıfır ve bu hafta sonundan önce +3636 puan daha.

Saygılarımla, Yuri

 
Merhaba! Beyler, mql4'ü nasıl kullanacağımı çözemiyorum((iki EMA'ya (kaygan ortalama) dayalı küçük bir Uzman Danışman yazmak istedim, bu da geçişten sonra bir bip sesi veriyor? Bu programdan bana bir şey söyleyebilir misiniz? Teşekkürler. peşin!!!
 
silmin85 :
Merhaba! Beyler, mql4'ü nasıl kullanacağımı çözemiyorum((iki EMA'ya (kaygan ortalama) dayalı küçük bir Uzman Danışman yazmak istedim, bu da geçişten sonra bir bip sesi veriyor? Bu programdan bana bir şey söyleyebilir misiniz? Teşekkürler. peşin!!!
Pakette bulunan standart Hareketli Ortalamayı temel alın ve onunla denemeler yapın. MA'yı EMA ile değiştirebilirsiniz.
 
goldtrader :
Pakette bulunan standart Hareketli Ortalamayı temel alın ve onunla denemeler yapın. MA'yı EMA ile değiştirebilirsiniz.
Gerçek şu ki, iki EMA'nın her kesişme noktasında bir bip sesi veren basit bir danışman istiyorum! MetaTrader uzmanlarında Moving Average.mq4 var

İşte tam açıklama:

//+------------------------------------------- --------------------+

//| Hareketli Ortalama.mq4 |
//| Telif Hakkı © 2005, MetaQuotes Yazılım A.Ş. |
//| http://www.metaquotes.net/ |
//+------------------------------------------- --------------------+
#define MAGICMA 20050610

dış çift Lot = 0.1;
harici çift MaximumRisk = 0.02;
dış çift Azaltma Faktörü = 3;
harici çift Hareketli Dönem = 12;
harici çift MovingShift = 6;
//+------------------------------------------- --------------------+
//| Açık pozisyonları hesaplayın |
//+------------------------------------------- --------------------+
int CalculateCurrentOrders(dize sembolü)
{
int satın alır = 0, satar = 0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) satın alır++;
if(OrderType()==OP_SEL) satıyor++;
}
}
//---- iade sipariş hacmi
if(satın alır>0) iade(satın alır);
başka iade(-satış);
}
//+------------------------------------------- --------------------+
//| Optimum parti boyutunu hesaplayın |
//+------------------------------------------- --------------------+
çift LotOptimize Edilmiş()
{
çift lot=lot;
int siparişler=TarihToplam(); // geçmiş sipariş toplamı
int kayıplar=0; // Kesintisiz siparişlerin sayısı
//---- parti boyutunu seç
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- Kesintisiz siparişlerin sayısını hesapla
if(DecreaseFactor>0)
{
for(int i=sipariş-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Geçmişte hata!"); kırmak; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) devam ediyor;
//----
if(OrderProfit()>0) kırılması;
if(OrderProfit()<0) kayıpları++;
}
if(kayıplar>1) lot=NormalizeÇift(lot-lot*kayıplar/AzalışFaktörü,1);
}
//---- parti boyutunu iade et
if(lot<0.1) lot=0.1;
dönüş(lot);
}
//+------------------------------------------- --------------------+
//| Açık sipariş koşullarını kontrol edin |
//+------------------------------------------- --------------------+
geçersiz CheckForOpen()
{
çift ana;
iç;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüş;
//---- Hareketli Ortalamayı al
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- satış koşulları
if(Open[1]>ma && Kapat[1]<ma)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Kırmızı);
dönüş;
}
//---- satın alma koşulları
if(Open[1]<ma && Close[1]>ma)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Mavi);
dönüş;
}
//----
}
//+------------------------------------------- --------------------+
//| Yakın sipariş koşullarını kontrol edin |
//+------------------------------------------- --------------------+
geçersiz CheckForClose()
{
çift ana;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüşü;
//---- Hareketli Ortalamayı al
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) devam ediyor;
//---- sipariş tipini kontrol et
if(OrderType()==OP_BUY)
{
if(Open[1]>ma && Kapat[1]<ma) OrderClose(OrderTicket(),OrderLots(),Bid,3,Beyaz);
kırmak;
}
if(OrderType()==OP_SEL)
{
if(Open[1]<ma && Close[1]>ma) OrderClose(OrderTicket(),OrderLots(),Ask,3,Beyaz);
kırmak;
}
}
//----
}
//+------------------------------------------- --------------------+
//| başlatma işlevi |
//+------------------------------------------- --------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
başka CheckForClose();
//----
}

//+------------------------------------------- --------------------+

Bence işe yarayacak şekilde nasıl değiştirebilirim, anlamıyorum?! Sadece bir 50EMA'ya ve bir 100EMA'ya ve her çarpıda bir bip sesine ihtiyacım var!!!