Kodlama yardımı - sayfa 258

 
Tomcat98:
Merhaba Mladen, herkese merhaba,

Lanet olası yeni yapı!

B625 ile artık yeni uyarılarım var.

"'OrderSelect'in dönüş değeri kontrol edilmelidir"

aşağıdaki kod için:

"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);"

Bunu nasıl düzeltebilirim?

Her şey için teşekkürler.

Tomcat98

Tomcat98

Aşağıdakileri yapın :

bir global boole değişkeni bildirin (örneğin bunun gibi):

bool kuklaSonuç;

Ardından, OrderSelect'in önüne "dummyResult =" öğesini yerleştirmeniz yeterlidir - o zaman aşağıdakilere sahip olursunuz:

dummyResult = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

 
Tomcat98:
Merhaba Mladen, herkese merhaba,

Lanet olası yeni yapı!

B625 ile artık yeni uyarılarım var.

"'OrderSelect'in dönüş değeri kontrol edilmelidir"

aşağıdaki kod için:

"OrderSelect(i,SELECT_BY_POS,MODE_TRADES);"

Bunu nasıl düzeltebilirim?

Her şey için teşekkürler.

Tomcat98

Eh, biraz çaba harcamak için ondan kurtulabilirsiniz.

Ancak hiçbir şekilde kaldıramayacağıma dair kalıcı bir uyarı alıyorum (kaynak kodun satırını kaldırmak dışında):

struct Empty {};[/CODE]

results in

[CODE]! struct has no members, size assigned to 1 byte

Bu, yalnızca dll çağrıları için bir süper tip olarak kullanırsam, işe yaramaz bir bilgidir (boş yapının başka herhangi bir kullanımı hakkında hiçbir fikrim yok).

 

Merhaba Mladen,

Evet çalışıyor:

İyi iş.

Yardımın için çok teşekkürler.

Samimi olarak.

Tomcat98

 

Herkese selam,

Bazı günlerden beri, EA'mda kullandığım göstergelerimden birinde düzensiz olarak aşağıdaki hatayı alıyorum.

2014.04.10 09:01:49.533 2014.01.08 03:45 Erişim ihlali 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDaily' içinde 0xFFFFFFFE'ye yazma

MT Sürüm 4'ü kullanıyorum. Build 625

Lütfen bu sorunun temel nedenini bulmama yardım edin. Göstergeye bakmanız gerekiyorsa bana bildirin. Her zaman değil ama çok sık...

Teşekkürler ve saygılarımla,

Antonius

 
Antony1:
Herkese selam,

Bazı günlerden beri, EA'mda kullandığım göstergelerimden birinde düzensiz olarak aşağıdaki hatayı alıyorum.

2014.04.10 09:01:49.533 2014.01.08 03:45 Erişim ihlali 'C:\Users\...\AppData\Roaming\MetaQuotes\Terminal\D5D5AE2430FC68F628F143CAFA9XXXX\MQL4\indicators\MyDaily' içinde 0xFFFFFFFE'ye yazma

MT Sürüm 4'ü kullanıyorum. Build 625

Lütfen bu sorunun temel nedenini bulmama yardım edin. Göstergeye bakmanız gerekiyorsa bana bildirin. Her zaman değil ama çok sık...

Thx ve en iyi dileklerimle,

Antonius

Antonius

Bu, göstergenizle ilgili bir sorun değil

Yeni metatrader 4 ile ilgili bir sorun (uygun bellek ayırma ve erişim ile ilgili sorunlar yaşıyor - yapı 628 biraz daha iyi ama fazla değil)

 

Merhaba,

yazmaya çalıştığım bu göstergeyle ilgili yardıma ihtiyacım var (Wilder takip eden stop mumları MTF).

İlk sorun: göstergem bundan 1 bar önce al sinyali çekiyor ve bunun eğimin hesaplanma şeklinden kaynaklandığını biliyorum ama nasıl düzelteceğimi bilmiyorum.

İkinci sorun: Renkler uyuşmuyor, muhtemelen bu bölümde tamponları karıştırdım ama kendimi bozuyorum düzeltemiyorum :

if (UpLineBuffer!=EMPTY_VALUE)

{

UpBodyBuffer = High;

DnBodyBuffer = Low;

UpWickBuffer = MathMax(Open,Close);

DnWickBuffer = MathMin(Open,Close);

}

else

{

DnBodyBuffer = High;

UpBodyBuffer = Low;

DnWickBuffer = MathMax(Open,Close);

UpWickBuffer = MathMin(Open,Close);

wilders_trailing_stop_candles_mtf.mq4

wilders_trailing_stop_mtf_1.mq4

wilders_trailing_stop.mq4

 
thefxpros:
Merhaba,

yazmaya çalıştığım bu göstergeyle ilgili yardıma ihtiyacım var (Wilder takip eden stop mumları MTF).

İlk sorun: göstergem bundan 1 bar önce al sinyali çekiyor ve bunun eğimin hesaplanma şeklinden kaynaklandığını biliyorum ama nasıl düzelteceğimi bilmiyorum.

İkinci sorun: Renkler uyuşmuyor, muhtemelen bu bölümde tamponları karıştırdım ama kendimi bozuyorum düzeltemiyorum :

if (UpLineBuffer!=EMPTY_VALUE)

{

UpBodyBuffer = High;

DnBodyBuffer = Low;

UpWickBuffer = MathMax(Open,Close);

DnWickBuffer = MathMin(Open,Close);

}

else

{

DnBodyBuffer = High;

UpBodyBuffer = Low;

DnWickBuffer = MathMax(Open,Close);

UpWickBuffer = MathMin(Open,Close);

wilders_trailing_stop_candles_mtf.mq4

wilders_trailing_stop_mtf_1.mq4

wilders_trailing_stop.mq4

mmmhh, renkler uyuşuyor. Belki önce fitil tamponlarını, sonra da bodybuffers'ı yazmam gerekir?

 
thefxpros:
mmmhh, renkler uyuşuyor. Belki önce fitil tamponlarını, sonra da bodybuffers'ı yazmam gerekir?

thefxpros

En kolay yol, Wilders'ın takip eden durdurma göstergesini değiştirmektir (aksi takdirde, bazı karmaşık yapılarda yakalanacaksınız). İşte istediğiniz bir dahili arabelleğe sahip bir sürüm: trend. 1'e eşitse trend yukarı, -1'e eşitse trend aşağıdır. Orijinal yerine bu göstergeyi kullanın ve sadece arabellek 4'ün değerini okuyun - bundan sonra her şey basit

 
mladen:
thefxpros En kolay yol, Wilders'ın takip eden durma göstergesini değiştirmektir (aksi takdirde, başka türlü karmaşık yapılarda kalırsınız). İşte istediğiniz bir dahili arabelleğe sahip bir sürüm: trend. 1'e eşitse trend yukarı, -1'e eşitse trend aşağıdır. Orijinal yerine bu göstergeyi kullanın ve sadece arabellek 4'ün değerini okuyun - bundan sonra her şey basit

Bunun gibi ?

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

#property copyright "thefxpros"

#property link "thefxpros@katamail.com"

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

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 LimeGreen

#property indicator_color2 Orange

#property indicator_color3 DarkGreen

#property indicator_color4 FireBrick

#property indicator_width1 1

#property indicator_width2 2

//

//

//

extern int TimeFrame = 0;

extern int Length = 2;

extern double Coeff = 1.75;

extern color UpBodyColor = LimeGreen;

extern color DnBodyColor = Orange;

extern color UpWickColor = DarkGreen;

extern color DnWickColor = FireBrick;

extern int WickWidth = 1;

extern int BodyWidth = 2;

//

double UpBodyBuffer[];

double DnBodyBuffer[];

double UpWickBuffer[];

double DnWickBuffer[];

double TrendBuffer[];

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

//| |

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

int init()

{

IndicatorBuffers(6);

SetIndexBuffer(0,UpWickBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, UpWickColor);

SetIndexBuffer(1,DnWickBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, DnWickColor);

SetIndexBuffer(2,UpBodyBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, UpBodyColor);

SetIndexBuffer(3,DnBodyBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, DnBodyColor);

SetIndexBuffer(4,TrendBuffer);

IndicatorShortName("Wilders trailing stop MTF candles("+Length+","+Coeff+")");

Length = MathMax(Length,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("Wilders trailing stop MTF candles("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

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

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

int slope=iCustom(Symbol(),TimeFrame,"Wilders trailing stop with trend",Length,Coeff,4,y);

if (slope == 1)

{

UpWickBuffer = High;

DnWickBuffer = Low;

UpBodyBuffer = MathMax(Open,Close);

DnBodyBuffer = MathMin(Open,Close);

}

if (slope == -1)

{

DnWickBuffer = High;

UpWickBuffer = Low;

DnBodyBuffer = MathMax(Open,Close);

UpBodyBuffer = MathMin(Open,Close);

}

}

return(0);

}

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

İnanamıyorum, ilk denemede çalışıyor .....Yaptığımdan daha iyi yazabileceğim (trendbuffer'ı sil evet, şimdi gördüm) başka bir şey var mı?

teşekkürler Mladen

Dosyalar:
cattura_2.jpg  72 kb
 
mladen:
Grafikte inç cinsinden uzun çizgiler çizemezsiniz (metatrader kullanmak tamamen imkansızdır ve herhangi bir ticaret platformunda bunun mümkün olduğundan şüpheliyim). Ve bu çizgiler, trend çizgileri değil yatay çizgiler nesneleridir (trend çizgileri sınırlandırılabilir, ancak yatay çizgiler olamaz). Çizgilerin nasıl çizileceğine dair kesin bir matematiksel kural yoksa (inçlere değil, fiyata bağlı olarak) çizilemezler ve bu sayı dizisinden, kuralların her çizgi için benzersiz olduğu anlaşılıyor.

Tamam teşekkürler, düzenleyebileceğin daha iyi bir indy buldum. Bir kodlayıcının forexfactory'de yaptığı bitmemiş bir projeydi ve artık onu bulamıyor. Lütfen 00, 20, 50, 80'i benim numaralarımla değiştirin. Çizgiler ayrıca 5, 15, 31, 45 ve 67 özel sayılarına yerleştirmek yerine kümelenmiştir.

teşekkürler

Dosyalar: