Sormak! - sayfa 77

 

CodersGuru'ya: 10 puan 3 EA hakkında yardıma ihtiyacım var....

Merhaba CodersGuru,

Forex ticaretinde yeniyim ve bu forumda da yeniyim. İlk kez, 10 punto 3 EA betiğinden genişletilmiş EuroX2_sl olduğunu öğreniyorum. Birkaç ileri test yaptıktan sonra, bu EA Açık Pozisyonu iyi yaptı, ancak piyasa tersine döndüğünde ihtiyacım olduğu kadar Pozisyonu Kapatmadı. Belki kodda bir sorun vardır (çünkü ben bir programcı değilim) ve sanırım bunu çözmek için yardımınıza ihtiyacım var. Lütfen hangi parçanın yanlış olabileceğini kontrol edebilir misiniz?

Durum:

1. Gösterge durumu mevcut olduğunda SATIN AL AÇ. yani: stokastik

2. AÇIK SAT göstergesi varken KAPAT AL. yani: stokastik

3. AÇIK SATIŞ gösterge koşulu olarak (yukarıdaki 2. numara) mevcuttur. yani: stokastik

4. KAPAT SAT gösterge koşulu (yukarıda 1 no.lu) mevcut olduğundan. yani: stokastik

Bence AÇIK pozisyon tamam ama sorun KAPALI POZİSYON'da çünkü gösterge varken bile KAPATMADI ( AL veya SAT ) .

Yaptığım gibi kod:

-------- EuroX2_sl'den gelen betiğin bir kısmı, yakın konum için düşündüğüm gibi 10 noktadan 3 uzatıldı -------

// pazara doğru girmek önemlidir,

// ama doğru çıkmak daha önemli...

for(cnt=0;cnt<toplam;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // açık pozisyonu kontrol edin

OrderType()<=OP_SATIN AL &&

OrderType()>=OP_SEL &&

OrderType()>=OP_SATIN AL &&

OrderSymbol()==Symbol()) // sembolü kontrol edin

{

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

if(OrderType()==OP_BUY) // uzun pozisyon açıldı

{

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

//+ YAKIN POZİSYON ŞART

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

//+--------------- SATIN ALMA POZİSYONUNU KAPAT ----------------------------

eğer ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // konumu kapat

dönüş(0); // çıkış

}

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

// takip eden durdurmayı kontrol et

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Teklif Noktası*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

dönüş(0);

}

}

}

}

//+-----------KAPALI SATIŞ POZİSYONU ----------------------------- ---

else // kısa pozisyona git

{ //+ KALDIRMAYIN

if(OrderType()==OP_SELL) // kısa pozisyon açıldı

{

}

// kapatılmalı mı?

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

if ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // konumu kapat

dönüş(0); // çıkış

}

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

// takip eden durdurmayı kontrol et

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Nokta*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

dönüş(0);

}

}

}

}

}

}

-------------------------------------------------- ------------

Teşekkür ederim,

fxgroup

 

Başka bir döviz çifti penceresinden veri okuma

EA'm "GBPJPY" penceresinde, ancak "USDJPY" deyin, başka bir pencere oluşturan ObjectDescription() öğesini bulmam gerekiyor. (Maalesef, iCustom()'dan değer döndürmeyen bir Pivot göstergesidir)

Üzerinde ObjectDescription() gibi işlevleri kullanabilmek için başka bir (geçerli olmayan) çift penceresine başvurmanın yolunu bilen var mı?

Yoksa MQ4 buna izin vermiyor mu?

Teşekkür ederim

euro

 

Bir para biriminin kârını diğerlerinden nasıl ayırabilirim?

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

Bu kodlamayı ben oluşturdum, ancak bir para biriminin karını işlem gören diğer para birimlerinden ayıramam. Kodumda ne eksik?

Gözden geçirin. Yardımın için teşekkürler!

Dave

 

Kâr

Bu kodu deneyin:

int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}[/php]

1Dave7:
[php]

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??

Please review. Thanks for your help!

Dave
 
codersguru:
Bu kodu deneyin:
int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}

Merhaba Kodlayıcı,

Bu tam olarak ihtiyacım olan şey değildi. Ne aradığımı göstermek için bir grafik resim ekliyorum. Karı görüntülemek için kodlamayı değiştirebilir misiniz? Eğer öyleyse, Kar miktarında renklerin değişmesini sağlayabilirim. Ben sadece her bir belirli para birimi için kâr arıyorum.

Dosyalar:
 

gösterge bağlı

Merhaba Codersguru

ekli göstergenin, broker sunucu saatinde değil, gece yarısı gmt'de açık olarak gösterilmesini istiyorum, bu mümkün mü?

çok teşekkürler monty

 

kodla ilgili yardım

Kodun üzerinden geçebilir misin? Bir değeri yanlış alıyorum ("Hesap" bölümüne bakın) ve ardından doğru şekilde dolduruluyor ama neden olduğundan emin değilim.

int Hesap = 123456;

if (Hesap != HesapNumarası())

{

Comment("Bu programı bu hesapla kullanamazsınız");

dönüş (0);

}

başka

{

Comment("Programa Hoş Geldiniz");

}

 

Basit soru

Uzman danışman, init() ve deinit() işlevleri olmadan normal şekilde çalışır mı?

 
n7drazen:
Uzman danışman, init() ve deinit() işlevleri olmadan normal şekilde çalışır mı?

Evet,

Yalnızca başlatma işlevi gereklidir.

 

kalenzo,

Bir sorum var:

ÖNLEM:

Arıyorum:

if (OrderOpenPrice() = = Teklif Ver (veya Sor)

Açılan fiyat yeni fiyat ile eşit olmalıdır.

Aynı çift EURUSD ile riskten korunma yapıyorum.

Açılan fiyat sat ve fiyat 1.3580 ise,

alış fiyatı aynı olmalıdır.

Teşekkürler. İşte kodlar.

B.

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

if(Satın al==0)

{

Yenileme Oranları();

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_ 1,MODE_ASK),...

Yenileme Oranları();

if (OrderOpenPrice() == Teklif)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol _1,MODE_BID),...

}