Kodlama yardımı - sayfa 161

 

Bir seferde 2 sipariş

Merhaba, bir EA kodlamaya çalışıyorum ve bir sorunum var, nasıl çözeceğimi bilmiyorum :?

yani sorun şu ki şu anda 2 sipariş (OPESTOP ve SELLSTOP) açmak istiyorum, ancak bu EA'da yaklaşık 100 veya daha fazla maby açar, bu yüzden sadece 2'yi açmak için nasıl çözülür :??

dış çift Lot=1;

extern double h_beg=10;

dış çift h_end=23;

harici çift TakeProfit=20;

harici çift StopLoss=90;

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

int başlangıç()

{

çift prevbar_H;

çift prevbar_L;

çift bar_H;

çift bar_L;

çift satış;

çift satın alma;

bool trade_time;

bool sell_opened;

bool buy_opened;

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

if (Saat()==h_beg)

{

ticaret_zamanı = doğru;

for(int h=1; h<=11; h++)

{

bar_H = iYüksek(NULL,0,h);

if (prevbar_H==0 || prevbar_H<bar_H)

{

prevbar_H = bar_H;

}

}

for(int l=1; l<=11; l++)

{

bar_L = iLow(NULL,0,l);

if (prevbar_L==0 || prevbar_L>bar_L)

{

prevbar_L = bar_L;

}

}

}

if (Saat()==h_end)

{

trade_time = yanlış;

prevbar_H = 0;

prevbar_L = 0;

SilBeklemede();

SilBUY();

sat=0;

satın al=0;

}

//+------------------------------------------- ---------almak veya satmak-----------+

if(Saat()==h_beg)

{

if(sat==0)

{

OrderSend(Symbol(),OP_SELLSTOP,Lots,prevbar_L,3,prevbar_L+200*Point,prevbar_L-200*Point,"MA numunesi",16384,0,Yeşil);

sat=1;

}

if(satın al==0)

{

OrderSend(Symbol(),OP_BUYSTOP,Lots,prevbar_H,3,prevbar_H-200*Point,prevbar_H+200*Point,"MA numunesi",16384,0,Yeşil);

satın al=1;

}

}

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

dönüş(0);

}

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

void DeletePending()

{

for(int i=0; i<SiparişToplam(); i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

{

OrderDelete(OrderTicket());

}

}

}

geçersiz DeleteBUY()

{

for(int i=0; i<SiparişToplam(); i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

{

if (OrderType() == OP_BUY)

{

OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );

}

}

}

}
 
carbonmimetic:
Merhaba Mladen,

2 düşük arasındaki çubukları saymak istersem, pazar 23.00 pm ile 00.00 arasındaki çubuktan nasıl kaçınabilirim?

çünkü 4 saatlik grafikte o çubuk var ve sadece bir saat sürüyor..... ve aynı zamanda günlük grafikte de görünüyor.

şimdiden teşekkürler

karbonmimetik

Buna benzer bir haftanın günü kontrolü ekleyin:

if (TimeDayOfWeek(Time[yourCounter])!=0)

0 Pazar ve bu durumda o çubuğu atlamanız gerekir

 

Benim kullandığım sistem martingale ticaret sistemi gibi olduğu için, sipariş verdiğimde yaklaşık 1 çalışma emri ve 4 bekleyen emir var , kaybedince 2. bekleyen emir çalışma emri olacak, bu yüzden önceki TP'yi mevcut emre eşit hareket ettirmem gerekiyor , bu yüzden EA'nın bunu otomatik hale getirmesini umuyorum , bu yüzden izlemeye devam etmem gerekmiyor , çünkü bazen öğle veya akşam yemeği için dışarı çıkmam gerekiyor . Kendimi kodlamaya çalışıyorum ama yeni siparişi nasıl seçeceğimi ve önceki siparişi nasıl değiştireceğimi bilmiyorum.

 
mladen:
karbonmimetik

Buna benzer bir haftanın günü kontrolü ekleyin:

if (TimeDayOfWeek(Time[yourCounter])!=0)
0 Pazar ve bu durumda o çubuğu atlamanız gerekir

tamam çok teşekkür ederim!

 

merhaba mladen,

Lütfen koda bakmanıza yardımcı olur musunuz, canlı grafikte görüyorum, sinyal hattını yeniden boyayabiliyor, mt4 menüsünün yenilenmesine bastığımda hat tamamen pozisyon değiştirebiliyor, yani sinyal hattını geçiyor.

Geçmişi yeniden boyamamak veya sorunları otomatik olarak yenileyememek için bu sorunu çözebilir misiniz? Sorunlu çubukları saymak veya dahili döngü yolları gibi bir şey mi? Ben sadece yüzeysel bir kod acemiyim. Yardım için çok teşekkürler.

Dosyalar:
 
kenwa:
merhaba mladen,

Lütfen koda bakmanıza yardımcı olur musunuz, canlı grafikte görüyorum, sinyal hattını yeniden boyayabiliyor, mt4 menüsünün yenilenmesine bastığımda hat tamamen pozisyon değiştirebiliyor, yani sinyal hattını geçiyor.

Geçmişi yeniden boyamamak veya sorunları otomatik olarak yenileyememek için bu sorunu çözebilir misiniz? Sorunlu çubukları saymak veya dahili döngü yolları gibi bir şey mi? Ben sadece yüzeysel bir kod acemiyim. Yardım için çok teşekkürler.

kenva

init'i değiştirin ve şunlarla başlayın:

double CCI_idx[];

double CCI_idt[];

int init()

{

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,CCI_idx);

SetIndexBuffer(1,CCI_idt);

return(0);

}

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

//| |

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

int start()

{

int i,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for(i=limit;i>=0;i--) CCI_idt = iCCI(abc,0,CCI_Period,applied_price,i);

for(i=limit;i>=0;i--) CCI_idx = iMAOnArray(CCI_idt,Bars,MA_Period,0,MA_Method,i);

return(0);

}

Aynı arabelleği cci değerleri toplamak ve daha sonra bu cci'lerin ortalamalarını saklamak için kullanamazsınız - yeniden boyamaya neden oluyordu. Ayrıca, CCİ çağrısından zaman çerçevesi referansı kaldırıldı. Çoklu zaman diliminde de hesaplamasını istiyorsanız farklı yazılmalıdır.

__________________________

Not: Aynı tavsiye, mevcut bir çizelgede farklı bir sembol kullanmak için de uygulanabilir. Mevcut bir sembolün değişen çubuklarının sayısı, başka bir hedef sembolün çubuklarının sayısıyla aynı olmak zorunda değildir, böylece yeniden boyama efekti elde edebilirsiniz, ancak olduğu gibi bırakın.

 

merhaba mladen,

yukarıdaki #1606'ya bakın, çok yüzeysel bir acemi olduğum veya gerçekten çok az şey bildiğim için, ne demek istediğinizi anlayamıyorum, buraya uygulanabilir bir gösterge ekleyebilir misiniz? CCI değerini hesaplamak için bir arabellek kullanabilir ve ardından iki arabellek kullanmak yerine ortalamayı yapabilir miyim? farklı sembollerden bahsediyorsunuz, aynı çizelgede iki sembolü barındıracak basit bir versiyon yazmak mümkün mü? mtf ise bunun yerine nasıl yazılır, yardım için çok teşekkürler.

 
kenwa:
Merhaba mladen, yukarıdaki #1606'ya bakın, çok yüzeysel bir acemi olduğum veya gerçekten çok az şey bildiğim için, ne demek istediğinizi anlayamıyorum, buraya uygulanabilir bir gösterge ekleyebilir misiniz? CCI değerini hesaplamak için bir arabellek kullanabilir ve ardından iki arabellek kullanmak yerine ortalamayı yapabilir miyim? farklı sembollerden bahsediyorsunuz, aynı çizelgede iki sembolü barındıracak basit bir versiyon yazmak mümkün mü? mtf ise bunun yerine nasıl yazılır, yardım için çok teşekkürler.

kenva

Aynı arabelleği, arabelleği hesaplamak ve daha sonra o CCI'nin ortalamasının sonuçlarını aynı arabellekte saklamak için kullanamazsınız - ortalama, geçmiş değerleri değiştirir

Çoklu sembol göstergesi (geçerli bir grafikten diğer sembollere erişebilen) itibariyle : Bunun için bir çözüm gönderirsem korkarım basit olmayacak. Bunun için basit bir çözüm yok ve önce aynı anda iki farklı sembolle ne olduğunu netleştirmeniz gerekiyor.

Geçerli bir sembolde ve geçerli zaman çerçevesinde doğru çalışan sürümü eklemek (iMAOnArray() işlevini kullanmak istiyorsanız ortalama bir cci'yi hesaplamanın tek yolu budur)

Dosyalar:
 

kenva

Bu, çoklu zaman çerçevesinde çalışmasını sağlamanın ve herhangi bir sembolü seçebilmenin mümkün olan en basit yolu olacaktır. İlk bakışta göründüğü kadar basit olmadığını göreceksiniz, ancak bu, doğru verileri toplamak ve bunu yaparken yeniden boyamaktan kaçınmak için gereken her şeyi yapıyor.

 

merhaba mladen,

çok teşekkürler, yukarıya bakın, mtf'niz mtf olmayan sürümde yazıyorsa nasıl olur? anaokulu kodlama seviyem nedeniyle kendimi değiştiremiyorum. bu arada, çünkü hesaplamak için 2 arabellek kullanmış görünüyorsunuz, ancak mt4 yalnızca maksimum 8 arabelleğe izin veriyor, öyle mi? ekli referans göstergesini beğenmek istersem (ki bu hiçbir şekilde iyi bir gösterge değil (bence içinde hatalar var, değil yani canlı olarak uygulanabilir)), sadece referansınız için, aynı anda sekiz sembolü gösterebilir, gerekli para birimini veya harici olarak girmek istediğim herhangi bir sembolü gösterebilir, (sanırım aynı göstergeyi sw'de üst üste bindirmek dikey ölçek olarak çalışmaz orada sabit değil) referans göstergesine benzer bir cci mtf oluşturmama nasıl yardımcı olabilirsiniz (gerekli bu kadar karmaşık değil, ancak benzer işlevleri var mı?) Yardımlarınız için tekrar çok teşekkürler.

Dosyalar:
reference.mq4  17 kb
Neden: