Nasıl kodlanır? - sayfa 164

 
MiniMe:
Teşekkürler Ralph ama takası kaçıracaktım ve takas karını/zararını sipariş kararının kapanışına dahil etmek istiyorum

Ama ilk döngü hem kar hem de takas biriktirir, değil mi?

Hisse senedi rakamının, açık lotlar için 5 pip'in ne anlama geleceğiyle karşılaştırılacak rakam olduğunu düşünüyordum.... ve o zaman aslında başabaş fiyatı hesaplamanıza gerek yok.

 

Merhaba Ralph

3 değişkenim var

OrdLotlar ; lotlar halinde ve açık lotları temsil eder, ancak bu takası atlayacaktır

Eşitlik ; bu toplam kar kaybıdır ve bu, takası içerecektir

MinPro ; bu benim karım, yani 5 pip + başabaş noktası

Takas işlemini atlayacağından, pip cinsinden kâr/zararı bulmak için OrdLots'u kullanamıyorum

Pip cinsinden kar/zararı bulmak için Öz Sermayeyi kullanamıyorum çünkü bunun için ne kadar lot kullanıldığını bilmem gerekiyor ama lotlar için yaptığım hesaplama takası atlıyor

Bir şekilde kaç pip açıldığını bilmek için hem OrdLots hem de Equity işlevini kullanmam gerekiyor

MT4'te hesap bakiyesi veya hesap öz sermayesi ile ilgili hazır bir şey olabilir ama ben bulamadım

Teşekkür ederek önerdiğiniz çözüm takası düşünmeden karı/zararı pip olarak bulacaktır ama bunun için zaten bir fonksiyon koydum... Swap ile başabaş noktasının 5 pip üzerinde çıkmak istiyorum.

 

Times karşılaştırın ve döngü yapın

Selam millet.

Mql4 dili konusunda çok tecrübesizim. openordertime'ı bir Int var ile karşılaştırmak istiyorum ve eğer belirli bir süreyi besliyorsa ve siparişler hala açıksa, izin verilen açık emirlerin miktarını artırmak istiyorum, böylece bir Başabaş durumuna veya Belki bir kar durumuna ulaşmaya çalışabilirim ve ardından tüm açık siparişleri aynı anda kapatın ve maksimum siparişleri başlangıçta izin verilen maksimum değere ayarlayın. Birisi bana yardım edebilir veya bana zaten böyle bir şey yapan başka bir gönderide kod gösterebilir mi?

Bu kodu kullanıyorum ama çalışmıyor gibi görünüyor.

// Emirler uzun süre açık kalırsa emirleri kapat ve başabaşa çalış

geçersiz Zaman Koruması()

{

int toplam siparişler = SiparişlerToplam();

for(int i=toplam siparişler-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS);

if ( OrderSymbol()==Symbol() )

{

prTime = OrderOpenTime();

prTime = prTime * ÇağrıZamanı;

if (prTime >= TimeCurrent())

{

MaxAllowable_Trades = MaxAllowable_Trades + 3;

bayrak = 1;

kırmak;

}

}

}

dönüş;

}

Bu konuda gerçekten yardımınızı istiyorum.

teşekkürler

 
MiniMe:
Merhaba Ralph

3 değişkenim var

OrdLotlar ; lotlar halinde ve açık lotları temsil eder, ancak bu takası atlayacaktır

Eşitlik ; bu toplam kar kaybıdır ve bu, takası içerecektir

MinPro ; bu benim karım, yani 5 pip + başabaş noktası

Takas işlemini atlayacağından, pip cinsinden kâr/zararı bulmak için OrdLots'u kullanamıyorum

Pip cinsinden kar/zararı bulmak için Öz Sermayeyi kullanamıyorum çünkü bunun için ne kadar lot kullanıldığını bilmem gerekiyor ama lotlar için yaptığım hesaplama takası atlıyor

Bir şekilde kaç pip açıldığını bilmek için hem OrdLots hem de Equity işlevini kullanmam gerekiyor

MT4'te hesap bakiyesi veya hesap öz sermayesi ile ilgili hazır bir şey olabilir ama ben bulamadım

Teşekkür ederek önerdiğiniz çözüm takası düşünmeden kar zararı pip olarak bulacaktır ama bunun için zaten bir fonksiyon koydum... Swap ile başabaş noktasının 5 pip üzerinde çıkmak istiyorum.

Ah... belki anlıyorum... Yani ilk döngüde EquityNoSwap'a takas olmadan da kar biriktirirseniz, o zaman benim "if" ifademde Equity yerine bunu kullanabilirsiniz. (?) Çünkü o zaman test "başabaş+swap fiyatına göre 5 pip kâr var mı?" olurdu. bu aslında "swap'ı görmezden gelen 5 pip kâr var mı?" ile aynı şey. (ya da belki hala anlamıyorum)

Temel olarak "kar+swap" göreli "başabaş" ve dolayısıyla "kar" göreli "başabaş+swap" ve "kar", "OrdLots" üzerinden dağıtılır. Sonuç olarak, hala "başabaş" için gerçek bir pip fiyatı belirlemenize gerek yok.

 

En iyi EA kodlama fikri

Burada biraz yardım almak için bu adıma başlıyorum. Ekteki göstergeyi kodlamayı öğreniyorum. Ancak işe yaramadı. Yardımcı olabilecek var mı? Bu çok güvenilir bir göstergedir ve eğer birisi bunun için bir EA yapabilirse .bu neredeyse kutsal bir kâsedir.

Temel ilke:

1. kırmızı ok göründüğünde Satış pozisyonunu açın,

2 beyaz ok göründüğünde satın alma pozisyonunu açın ve tüm bu satış pozisyonlarını/pozisyonlarını otomatik olarak kapatın.

3. Herhangi bir zaman dilimi için başvurun.

4. kaybı durdurma yok,

5. sipariş fonksiyonu ekleyin.

Yanıt bekliyorum!

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

//| IINWMARROWS.mq4 |

//| EMA_CROSS.mq4 temel alınarak |

//| Telif hakkı ?2006, MetaQuotes Software Corp. |

//| Forex Ticaret Yazılımı: Forex Ticaret Platformu MetaTrader 4 |

//| Son küçük değişiklik Iin Zulkarnain tarafından |

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

#property telif hakkı "Telif hakkı ?2006, MetaQuotes Software Corp."

#özellik bağlantısı "http://www.metaquotes.net"

//----

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_renk1 Beyaz

#özellik göstergesi_renk2 Kırmızı

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

//----

çift Çapraz[];

çift CrossDown[];

harici int FasterMode=3; //0=sma, 1=ema, 2=smma, 3=lwma

harici int Daha HızlıMA= 3;

extern int SlowerMode=3; //0=sma, 1=ema, 2=smma, 3=lwma

harici int Daha YavaşMA= 3;

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

//| Özel gösterge başlatma işlevi |

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

int init()

{

//---- göstergeler

SetIndexStyle(0, DRAW_OK, BOŞ);

SetIndexArrow(0, 233);

SetIndexBuffer(0, CrossUp);

SetIndexStyle(1, DRAW_OK, BOŞ);

SetIndexArrow(1, 234);

SetIndexBuffer(1, CrossDown);

//----

dönüş(0);

}

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

//| Özel gösterge sıfırlama işlevi |

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

int tanım()

{

//----

//----

dönüş(0);

}

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

//| Özel gösterge yineleme işlevi |

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

int başlangıç()

{

int limit, i, sayaç;

iki kat daha hızlıMAnow, daha yavaşMAnow, daha hızlıMAönceki, daha yavaşMAönceki, daha hızlıMAsonra, daha yavaşMAsonra;

çift Aralık, AvgRange;

int counted_bars=IndicatorCounted();

//---- olası hataları kontrol et

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

//---- son sayılan çubuk yeniden sayılacak

if(counted_bars>0) counted_bars--;

//----

limit=Barlar-sayılan_barlar;

for(i=0; i<=limit; i++)

{

sayaç=i;

Aralık=0;

OrtAralık=0;

for(sayaç=i ;sayaç<=i+9;sayaç++)

{

AvgRange=AvgRange+MathAbs(Yüksek[sayaç]-Düşük[sayaç]);

}

Aralık=OrtAralık/10;

daha hızlıMAnow=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i);

fastMAprevious=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1);

fastMAafter=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1);

//----

daha yavaşMAnow=iMA(BOŞ, 0, YavaşMA, 0, YavaşMod, PRICE_OPEN, i);

slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowMode, PRICE_OPEN, i+1);

slowerMAafter=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i-1);

if ((daha hızlıMAnow > daha yavaşMAnow) && (fasterMAönceki daha yavaşMAson)

{

CrossUp=Düşük - Aralık*0.5;

}

else if ((fasterMAnow daha slowerMAprevious) && (fasterMAafter < slowerMAafter))

{

CrossDown=Yüksek + Aralık*0.5;

}

}

dönüş(0);

}

//+------------------------------------------- -------------------+doğru kodlamayı öğrenmek için bu konu, kodlamayı öğreniyorum

 

Büyük ve cesur kodlayıcılara

herhangi biri bu EA için maksimum konum ekleyebilir mi

veya sadece bir pozisyonda çalışmasına izin mi vereceksiniz?

şimdiden teşekkürler

Dosyalar:
reverse_1.mq4  16 kb
 

Gönderi Silindi

 

konu dışı soru

Açık kaynak kodlu olmayan bir programdan veri koklamak mümkün müdür?

Programlama dilleri zayıf (Metastock'a benzer ama daha zayıf, ''önceki'' fonksiyona izin verilmiyor. Sadece kendi göstergelerine izin veriyorlar ve (yasa gereği) veri tekellerine sahipler. DLL uzantısı yazmak mümkün değil. göstergelerimi gerçek zamanlı ortamda çalıştırmak için. '' excell'de port dinleme işlevi '' gibi bir şey duydum ama ne olduğu hakkında hiçbir fikrim yok.

Tüm programcılar çok takdir yanıt verir.

 

Farklı bir çift için açık sipariş

Merhaba,

Farklı bir döviz çifti için emir açmanın bir yolu var mı?

Örneğin, EA bir EURUSD grafiğinde çalışıyor, ancak USDJPY için bir sipariş açmak istiyorum.

Mümkün mü.

Şimdiden teşekkürler

 

OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY",MODE_ASK),10,0,0,"Com",0,0, CLR_NONE );