Kodlama yardımı - sayfa 469

 

Merhaba Tüccar.

Birisi bana yardım edebilir ve bu iki .ex4 dosyasındaki Göstergelerin ne olduğunu bilebilir mi?!

Saygılarımla, oink!

Dosyalar:
 
oink!:
Merhaba Tüccar.

Birisi bana yardım edebilir ve bu iki .ex4 dosyasındaki Göstergelerin ne olduğunu bilebilir mi?!

Saygılarımla, oink!

Uyarı sinyalleri, okları göstermek için yapılmış basit bir zikzaktır:

Dosyalar:
zz.gif  76 kb
 

Teşekkürler mladen, adınızı yaklaşık 10000 Göstergeden biliyorum! ;-)

Sonra zikzak + ok göstergesi için google'a giderim.

Diğeri tanımsız mı?

Saygılarımla, oink!

 
oink!:
Teşekkürler mladen, adınızı yaklaşık 10000 Göstergeden biliyorum! ;-)

Sonra zikzak + ok göstergesi için google'a giderim.

Diğeri tanımsız mı?

Saygılarımla, oink!

Açıkçası diğerini tanıyamadım. Afedersiniz

 

Merhaba,

Bu ea'nın neden çalışmadığını anlamıyorum, tamamlama tamam, dergide veya uzman sekmesinde hiçbir şey yok, ancak herhangi bir ticaret yok.

Şimdiden teşekkürler.

Jo

harici int magicNum=200;

harici çift TakeProfit = 50;

dış çift Lot = 0,01;

harici çift TrailingStop = 30;

//harici çift MACDOpenLevel=3;

//harici çift MACDCCloseLevel=2;

harici çift MATrendPeriod=5;

int başlangıç()

{

çift MaCurrent,MaPrevious,MavPrevious;

çift kapat=iClose(Symbol(),0,0);

double vclose=iClose(Symbol(),0,1);

double vvclose=iClose(Symbol(),0,2);

// çift MacdCurrent, MacdPrevious, SignalCurrent;

// çift SignalPrevious, MaCurrent, MaPrevious;

// çift RSIj,RSIv;

int cnt, bilet, toplam;

// ilk veri kontrolleri

// uzmanın normal bir şekilde çalıştığından emin olmak önemlidir.

// grafik ve kullanıcı harici ayarlarda herhangi bir hata yapmadı

// değişkenler (Lots, StopLoss, TakeProfit,

// TrailingStop) bizim durumumuzda TakeProfit'i kontrol ediyoruz

// 100 çubuktan küçük bir grafikte

if(Çubuklar<100)

{

Print("100'den küçük barlar");

dönüş(0);

}

if(Kâr Al<10)

{

Print("Kar Al 10'dan az");

dönüş(0); // TakeProfit'i kontrol edin

}

// kodlamayı basitleştirmek ve erişimi hızlandırmak için

// veriler dahili değişkenlere konur

// MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

// MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

// SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

// SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,1);

MavPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,2);

double PlusHaut =Yüksek;

double PlusBas =Düşük;

double TiersHaut =PlusBas +((PlusHaut-PlusBas)*0.66);

double TiersBas =PlusBas +((PlusHaut-PlusBas)*0.33);

// RSIj= iRSI(NULL,0,9,PRICE_CLOSE,0);

// RSIv= iRSI(NULL,0,9,PRICE_CLOSE,1);

toplam=SiparişToplam();

if(toplam<1)

{ // açık sipariş tanımlanmadı

if(AccountFreeMargin()<(1000*Lots))

{

Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());

dönüş(0);

}

// uzun pozisyon (SATIN AL) olasılığını kontrol edin

Eğer

// (RSIv30)

(MaCurrent >MaÖnceki)

// && (Öncekivkapat || vkapat>vvkapat))

// (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious &&

// MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaÖnceki)

{

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"MA",magicNum,0,Green);

if(bilet>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());

}

else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());

dönüş(0);

}

// kısa pozisyon (SAT) olasılığını kontrol et

// if (RSIv>70 && RSIj<70)

if (MaCurrent <MaÖnceki)

// && (MaÖnceki>MavÖnceki) && (kapat<vkapat || vkapat<vvkapat))

// (MacdCurrent>0 && MacdCurrentSignalÖnceki &&

// MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaÖnceki)

{

bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"MA",magicNum,0,Red);

if(bilet>0)

{

if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES)) Print(" SAT emri açıldı : ",OrderOpenPrice());

}

else Print("SATIŞ emrini açarken hata: ",GetLastError());

dönüş(0);

}

dönüş(0);

}

// 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

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

{

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

{

// kapatılmalı mı?

// if(MacdCurrent>0 && MacdCurrentSignalÖnceki &&

// MacdCurrent>(MACDCloseLevel*Nokta))

// if (RSIv>70 && RSIj<70)

if (MaCurrent <MaÖnceki)

{

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);

}

}

}

}

else // kısa pozisyona git

{

// kapatılmalı mı?

// if(MacdCurrentSignalCurrent &&

// MacdPrevious(MACDCloseLevel*Nokta))

Eğer

// (RSIv30)

(MaCurrent >MaÖnceki)

{

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);

}

}

}

}

}

}

dönüş(0);

}

// son.

 
Jovager:
Merhaba,

Bu ea'nın neden çalışmadığını anlamıyorum, tamamlama tamam, dergide veya uzman sekmesinde hiçbir şey yok, ancak herhangi bir ticaret yok.

Şimdiden teşekkürler.

Jo

harici int magicNum=200;

harici çift TakeProfit = 50;

dış çift Lot = 0,01;

harici çift TrailingStop = 30;

//harici çift MACDOpenLevel=3;

//harici çift MACDCCloseLevel=2;

harici çift MATrendPeriod=5;

int başlangıç()

{

çift MaCurrent,MaPrevious,MavPrevious;

çift kapat=iClose(Symbol(),0,0);

double vclose=iClose(Symbol(),0,1);

double vvclose=iClose(Symbol(),0,2);

// çift MacdCurrent, MacdPrevious, SignalCurrent;

// çift SignalPrevious, MaCurrent, MaPrevious;

// çift RSIj,RSIv;

int cnt, bilet, toplam;

// ilk veri kontrolleri

// uzmanın normal bir şekilde çalıştığından emin olmak önemlidir.

// grafik ve kullanıcı harici ayarlarda herhangi bir hata yapmadı

// değişkenler (Lots, StopLoss, TakeProfit,

// TrailingStop) bizim durumumuzda TakeProfit'i kontrol ediyoruz

// 100 çubuktan küçük bir grafikte

if(Çubuklar<100)

{

Print("100'den küçük barlar");

dönüş(0);

}

if(Kâr Al<10)

{

Print("Kar Al 10'dan az");

dönüş(0); // TakeProfit'i kontrol edin

}

// kodlamayı basitleştirmek ve erişimi hızlandırmak için

// veriler dahili değişkenlere konur

// MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

// MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

// SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

// SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,1);

MavPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_SMA,PRICE_CLOSE,2);

double PlusHaut =Yüksek;

double PlusBas =Düşük;

double TiersHaut =PlusBas +((PlusHaut-PlusBas)*0.66);

double TiersBas =PlusBas +((PlusHaut-PlusBas)*0.33);

// RSIj= iRSI(NULL,0,9,PRICE_CLOSE,0);

// RSIv= iRSI(NULL,0,9,PRICE_CLOSE,1);

toplam=SiparişToplam();

if(toplam<1)

{ // açık sipariş tanımlanmadı

if(AccountFreeMargin()<(1000*Lots))

{

Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());

dönüş(0);

}

// uzun pozisyon (SATIN AL) olasılığını kontrol edin

Eğer

// (RSIv30)

(MaCurrent >MaÖnceki)

// && (Öncekivkapat || vkapat>vvkapat))

// (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious &&

// MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaÖnceki)

{

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"MA",magicNum,0,Green);

if(bilet>0)

{

if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());

}

else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());

dönüş(0);

}

// kısa pozisyon (SAT) olasılığını kontrol et

// if (RSIv>70 && RSIj<70)

if (MaCurrent <MaÖnceki)

// && (MaÖnceki>MavÖnceki) && (kapat<vkapat || vkapat<vvkapat))

// (MacdCurrent>0 && MacdCurrentSignalÖnceki &&

// MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaÖnceki)

{

bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"MA",magicNum,0,Red);

if(bilet>0)

{

if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES)) Print("SAT emri açıldı : ",OrderOpenPrice());

}

else Print("SATIŞ emrini açarken hata: ",GetLastError());

dönüş(0);

}

dönüş(0);

}

// 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

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

{

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

{

// kapatılmalı mı?

// if(MacdCurrent>0 && MacdCurrentSignalÖnceki &&

// MacdCurrent>(MACDCloseLevel*Nokta))

// if (RSIv>70 && RSIj<70)

if (MaCurrent <MaÖnceki)

{

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);

}

}

}

}

else // kısa pozisyona git

{

// kapatılmalı mı?

// if(MacdCurrentSignalCurrent &&

// MacdPrevious(MACDCloseLevel*Nokta))

Eğer

// (RSIv30)

(MaCurrent >MaÖnceki)

{

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);

}

}

}

}

}

}

dönüş(0);

}

// son.

Sırt testlerimde çalışıyor:

Dosyalar:
jo.gif  90 kb
 

merhaba mladen,

"LossValue" Değişkeni ile aynı değerde kâr emrimin kısmi satışını yapmak istiyorum.

Aşağıdaki adımlarda lot boyutunu hesaplamaya çalıştım:

-profitOrder'dan gerçek Kar'ı okuyun

-ProfitPerLotstep'i hesaplayın

-Lot-sonucunun yukarısındaki LossValue/ProfitPerLotstep am değerini hesaplayın

-Ama bunu lotize satarsam Kar Değeri çok küçük olur (Sanırım yayılmadan dolayı)

Doğru hesaplama yolu nedir?

 

İşte ek bir soru.

Kısmi bir Kapatma yaparsam, Pozisyonun geri kalanı Broker tarafından otomatik olarak açılır. Pozisyona, bu Pozisyonu değiştirmek için bir yorum vermeden önce. Şimdi nasıl tanıyabilirim?

 
sunshineh:
İşte ek bir soru. Kısmi bir Kapatma yaparsam, Pozisyonun geri kalanı Broker tarafından otomatik olarak açılır. Pozisyona, bu Pozisyonu değiştirmek için bir yorum vermeden önce. Şimdi nasıl tanıyabilirim?

gün ışığı

Sen hiç bir şey yapamazsın

Bir emrin yorum alanını sadece komisyoncu değiştirebilir. Belki bir komisyoncu yorumu, nnnn'nin önceki bilet numarası olduğu "nnnn'den" gibi bir şey söyleme biçiminde değiştirir, ancak çoğu durumda değiştirmez, bu nedenle, aşağıdaki gibi durumlarda önceki siparişi benzersiz bir şekilde tanımlayabilecek hiçbir çözümle kalmazsınız. o

 

Teşekkürler mladen! 100 EUR gibi tanımlanmış bir değere göre lot boyutundan hesaplama yaparak daha önceki gönderime bir çözümünüz var mı?