Kodlama yardımı - sayfa 246

 
macerina:
Kod için teşekkürler Mladen ... Önceki mantıkta açıkladığınız gibi çift macd karşılaştırması ve 50 geçişi var mı? Şimdiden teşekkürler

makarna

Aradaki fark, kavak grafik versiyonunda ikincil giriş sinyalinin rsi ve sinyal hattının bir çaprazı olması iken metatrader versiyonunda ikincil sinyalin 50 hattının bir rsi çaprazı olmasıdır. Macd kısmı aynı (kapalı çubuk sinyalini almalısınız - kavak grafik versiyonunda bu şekilde yapılır)

 

bilgi için teşekkürler mladen ... 50 hat geçişi ve sinyal hattı geçişi seçmek için aynı göstergede seçeneği ayarlamak mümkün mü ...

Şimdiden teşekkürler

 
mladen:
sulaimoney Bu prosedürlerde her şey yolunda. Bu iki prosedüre yapılan çağrılar birbiri ardına yürütüldüğünde her şeyin yolunda olduğunu gösteren basit bir gösterge eklemek. Hata bu iki prosedürde olmadığı için kodun geri kalanını kontrol edin.

Merhaba Mladen

Kodu kontrol ettim ve değiştirdiğim bazı hatalar buldum.

Şimdi değerini kullanmaya çalışıyorum

çift son siparişfiyatı = 0;

Ve

int bscount = 0;

Küresel bir kapsamdaki değişkenler olarak, örneğin void NewOrder()'dan çağrılabilecekleri şekilde her biri

//OnEveryTick

void LastBuySellOrder() // OnEveryTick'te son siparişi (al/sat) seçmek için tüm açık siparişler arasında döngü yapar

{

çift son siparişfiyatı = 0;

tarihsaat lastTime = 0;

tarihsaat kapanışSaat = 0;

int lastTicket = -1; // Hiçbiri açık değil.

for (int i=OrdersTotal()-1; i >= 0; i--)

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

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

&&( OrderType() == OP_BUY || OrderType() == OP_SEL )

&& OrderOpenTime() >= lastTime && OrderCloseTime() == closeTime

&& OrderTicket() > lastTicket )

{

lastTime = OrderOpenTime();

lastorderprice = OrderOpenPrice();

closeTime = OrderCloseTime();

lastTicket = OrderTicket();

}

dönüş(sonTicket);

}

başka

Print("OrderSelect() hatası - ", ErrorDescription(GetLastError()));

}

void PendingStopOrderCount()

{

int bscount = 0;

for (int i=OrdersTotal()-1; i >= 0; i--)

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol())

if (OrderMagicNumber() == OrderId)

if (OrderType() == OP_BUYSTOP )

{

bscount++;

}

}

başka

{

Print("OrderSend() hatası - ", ErrorDescription(GetLastError()));

}

}

// OpBuy veya OpSell varsa

geçersiz NewOrder()

{

if (bscount==0)

{

BuyStopBeklemede();

}

}

 

SELAM

Bu gösterge yeniden boyayıcı mı? Evet ise ne zaman kaç bar geri gelir?

xps_v8_oscillator.ex4 xps_v8_oscillator.mq4

Dosyalar:
 
toldmikl:
SELAM

Bu gösterge yeniden boyayıcı mı? Evet ise ne zaman kaç bar geri gelir?

xps_v8_oscillator.ex4 xps_v8_oscillator.mq4
Evet. Zaman çerçevesine bağlı olarak otomatik olarak ayarlanan periyotlara sahip bir güneş rüzgarları göstergesidir:

1 dakika : periyot = 2880

5 dakika : periyot = 576

15 dakika : nokta = 192

30 dakika : periyot = 96

1 saat ve üzeri: dönem = 48

 

Tamam ama bunu çevrimdışı grafikte kullanıyorum M2 :S Yani normal Zaman Çerçevesi değil

 
toldmikl:
Tamam ama bunu çevrimdışı grafikte kullanıyorum M2 :S Yani normal Zaman Çerçevesi değil

Deneyin ve kendiniz göreceksiniz (göstergeyi tüm çubukları yenilemeye zorlamak için otomatik yenileme gibi bir şey kullanın veya basitçe, yeterli sayıda yeni çubuk oluşturulduğunda parametreler öğesine gidin, hiçbir şeyi değiştirmeyin ve Tamam'ı tıklayın). Trendin ne yapacağını değiştirdiği dönemlere dikkat edin.

Güneş rüzgarları kodunda neyin yanlış olduğunu açıklamaya çalışmaktan ve herkesi ikna etmekten daha iyi

 

Dönemi değiştiremiyorum sadece kaynak kodunu görebiliyorum:

#özellik göstergesi_separate_window

#özellik göstergesi_minimum 0

#özellik göstergesi_maksimum 1

#özellik göstergesi_tamponları 3

#özellik göstergesi_renk2 C'72,49,255'

#özellik göstergesi_renk3 C'255,49,72'

#özellik göstergesi_width2 6

#özellik göstergesi_width3 6

int dönem;

harici bool alarmı=yanlış;

çift ExtBuffer0[];

çift ExtBuffer1[];

çift ExtBuffer2[];

çift uyarıBar;

çift son;

int init() {

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

geçiş ( Dönem() )

{

durum 1: dönem = 2880;ara;

durum 5: nokta = 576;ara;

durum 15: nokta = 192;ara;

durum 30: dönem = 96;ara;

durum 60: dönem = 48;ara;

durum 240: dönem = 48;ara;

durum 1440: dönem = 48;ara;

durum 10080: dönem = 48;ara;

varsayılan : dönem = 48; ara;

}

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

SetIndexStyle(0,DRAW_NONE);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

GöstergeDigits(Rakam+1);

SetIndexBuffer(0,ExtBuffer0);

SetIndexBuffer(1,ExtBuffer1);

SetIndexBuffer(2,ExtBuffer2);

GöstergeShortName("");// X :-)");

SetIndexLabel(0, NULL);

SetIndexLabel(1, NULL);

SetIndexLabel(2, NULL);

dönüş(0);

}

int tanım()

{

//----

ObjectDelete("XPS");

ObjectDelete("XPS2");

ObjectDelete("XPS3");

//----

dönüş(0);

}

int start() {

int limiti;

int counted_bars=IndicatorCounted();

çift önceki, şimdiki, eski;

double Değer=0,Değer1=0,Değer2=0,Balık=0,Balık1=0,Balık2=0;

çift fiyat;

çift MinL=0;

çift MaksH=0;

if(counted_bars>0) counted_bars--;

limit=Barlar-sayılan_barlar;

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

{ MaksH = Yüksek;

MinL = Düşük[En Düşük(NULL,0,MODE_LOW,dönem,i)];

fiyat = (Yüksek+Düşük)/2;

Değer = 0,33*2*((fiyat-MinL)/(MaxH-MinL)-0,5) + 0,67*Değer1;

Değer=MathMin(MathMax(Değer;-0.999),0.999);

ExtBuffer0=0.5*MathLog((1+Değer)/(1-Değer))+0.5*Balık1;

Değer1=Değer;

Fish1=ExtBuffer0;

}

bool up = DOĞRU;

for(i=limit-2; i>=0; i--)

{

akım=ExtBuffer0;

önceki=ExtBuffer0;

if (((geçer))||(geçerli<0)) up= false;

if (((geçerli>0)&&(önceki0)) up= true;

if(!up) {

ExtBuffer2=1;

ExtBuffer1=0;

if (alarm && i==0 && last != 2 && ExtBuffer1 == 0 && Barlar>alertBar)

{

Alert("OSC... Olası Trend ",Period()," ",Symbol());

alertBar = Çubuklar;son = 2;

}

}

başka {

ExtBuffer1=1;

ExtBuffer2=0;

if (alarm && i==0 && last != 1 && ExtBuffer2 == 0 && Barlar>alertBar)

{

Alert("OSC... Olası Trend ",Period()," ",Symbol());

alertBar = Çubuklar;

son = 1;

}

}

}//Döngüyü Bitir

ObjectDelete("XPS");

ObjectCreate("XPS", OBJ_LABEL , 2, 0, 0);

ObjectSetText("XPS","!XPS v8", 28, "Arial Siyah", C'46,46,46');

ObjectSet("XPS", OBJPROP_CORNER, 2);

ObjectSet("XPS", OBJPROP_BACK, 0);

ObjectSet("XPS", OBJPROP_XDISTANCE, 6);

ObjectSet("XPS", OBJPROP_YDISTANCE, 8);

ObjectDelete("XPS2");

ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);

ObjectSetText("XPS2","!XPS v8", 28, "Arial Siyah", Gümüş);

ObjectSet("XPS2", OBJPROP_CORNER, 2);

ObjectSet("XPS2", OBJPROP_BACK, 0);

ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);

ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);

ObjectDelete("XPS3");

ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);

ObjectSetText("XPS3","BOSS gibi ticaret yap", 9, "Arial Siyah", Gümüş);

ObjectSet("XPS3", OBJPROP_CORNER, 2);

ObjectSet("XPS3", OBJPROP_BACK, 0);

ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);

ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);

dönüş(0);

}

Böyle?

 
toldmikl:
Dönemi değiştiremiyorum sadece kaynak kodunu görebiliyorum:

#özellik göstergesi_separate_window

#özellik göstergesi_minimum 0

#özellik göstergesi_maksimum 1

#özellik göstergesi_tamponları 3

#özellik göstergesi_renk2 C'72,49,255'

#özellik göstergesi_renk3 C'255,49,72'

#özellik göstergesi_width2 6

#özellik göstergesi_width3 6

int dönem;

harici bool alarmı=yanlış;

çift ExtBuffer0[];

çift ExtBuffer1[];

çift ExtBuffer2[];

çift uyarıBar;

çift son;

int init() {

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

geçiş ( Dönem() )

{

durum 1: dönem = 2880;ara;

durum 5: nokta = 576;ara;

durum 15: nokta = 192;ara;

durum 30: dönem = 96;ara;

durum 60: dönem = 48;ara;

durum 240: dönem = 48;ara;

durum 1440: dönem = 48;ara;

durum 10080: dönem = 48;ara;

varsayılan : dönem = 48; ara;

}

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

SetIndexStyle(0,DRAW_NONE);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

GöstergeDigits(Rakam+1);

SetIndexBuffer(0,ExtBuffer0);

SetIndexBuffer(1,ExtBuffer1);

SetIndexBuffer(2,ExtBuffer2);

GöstergeShortName("");// X :-)");

SetIndexLabel(0, NULL);

SetIndexLabel(1, NULL);

SetIndexLabel(2, NULL);

dönüş(0);

}

int tanım()

{

//----

ObjectDelete("XPS");

ObjectDelete("XPS2");

ObjectDelete("XPS3");

//----

dönüş(0);

}

int start() {

int limiti;

int counted_bars=IndicatorCounted();

çift önceki, şimdiki, eski;

double Değer=0,Değer1=0,Değer2=0,Balık=0,Balık1=0,Balık2=0;

çift fiyat;

çift MinL=0;

çift MaksH=0;

if(counted_bars>0) counted_bars--;

limit=Barlar-sayılan_barlar;

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

{ MaksH = Yüksek;

MinL = Düşük[En Düşük(NULL,0,MODE_LOW,dönem,i)];

fiyat = (Yüksek+Düşük)/2;

Değer = 0,33*2*((fiyat-MinL)/(MaxH-MinL)-0,5) + 0,67*Değer1;

Değer=MathMin(MathMax(Değer;-0.999),0.999);

ExtBuffer0=0.5*MathLog((1+Değer)/(1-Değer))+0.5*Balık1;

Değer1=Değer;

Fish1=ExtBuffer0;

}

bool up = DOĞRU;

for(i=limit-2; i>=0; i--)

{

akım=ExtBuffer0;

önceki=ExtBuffer0;

if (((geçer))||(geçerli<0)) up= false;

if (((geçerli>0)&&(önceki0)) up= true;

if(!up) {

ExtBuffer2=1;

ExtBuffer1=0;

if (alarm && i==0 && last != 2 && ExtBuffer1 == 0 && Barlar>alertBar)

{

Alert("OSC... Olası Trend ",Period()," ",Symbol());

alertBar = Çubuklar;son = 2;

}

}

başka {

ExtBuffer1=1;

ExtBuffer2=0;

if (alarm && i==0 && last != 1 && ExtBuffer2 == 0 && Barlar>alertBar)

{

Alert("OSC... Olası Trend ",Period()," ",Symbol());

alertBar = Çubuklar;

son = 1;

}

}

}//Döngüyü Bitir

ObjectDelete("XPS");

ObjectCreate("XPS", OBJ_LABEL, 2, 0, 0);

ObjectSetText("XPS","!XPS v8", 28, "Arial Siyah", C'46,46,46');

ObjectSet("XPS", OBJPROP_CORNER, 2);

ObjectSet("XPS", OBJPROP_BACK, 0);

ObjectSet("XPS", OBJPROP_XDISTANCE, 6);

ObjectSet("XPS", OBJPROP_YDISTANCE, 8);

ObjectDelete("XPS2");

ObjectCreate("XPS2", OBJ_LABEL, 2, 0, 0);

ObjectSetText("XPS2","!XPS v8", 28, "Arial Siyah", Gümüş);

ObjectSet("XPS2", OBJPROP_CORNER, 2);

ObjectSet("XPS2", OBJPROP_BACK, 0);

ObjectSet("XPS2", OBJPROP_XDISTANCE, 4);

ObjectSet("XPS2", OBJPROP_YDISTANCE, 10);

ObjectDelete("XPS3");

ObjectCreate("XPS3", OBJ_LABEL, 2, 0, 0);

ObjectSetText("XPS3","BOSS gibi ticaret yap", 9, "Arial Siyah", Gümüş);

ObjectSet("XPS3", OBJPROP_CORNER, 2);

ObjectSet("XPS3", OBJPROP_BACK, 0);

ObjectSet("XPS3", OBJPROP_XDISTANCE, 7);

ObjectSet("XPS3", OBJPROP_YDISTANCE, 3);

dönüş(0);

}

Böyle?

Standart bir zaman çerçevesi olmayan herhangi bir zaman dilimi için 48. periyodu uyguluyor ("2 dakika" çevrimdışı çizelgeleri gibi)

Güneş rüzgarlarının hesaplama süresini değiştirebileceğiniz versiyonları için şu konuya bakın: https://www.mql5.com/en/forum/179650

 

Selamlar gurular, Lütfen bu betiği düzenlememe yardım edin ve SADECE sipariş, parti büyüklüğü, alım/satım bırakın. Zaten otomatik olarak kar/zararı durduran ve böylece bu indy ile çelişen bir EA'ya sahibim.

Bu komut dosyası, MENU'de belirttiğiniz herhangi bir sayıda piyasa emrini otomatik olarak bir kerede açar ancak şu anda 5 emir girseniz bile sadece bir emir açmaktadır. Lütfen bu HATA'yı düzeltmeme yardım et ve SİL, SCRIPT'ten tamamen kar/zararı al

Seni korusun