Sormak! - sayfa 173

 

Karışık tip veri yapısının eksikliği nasıl çözülür

codersguru:
Merhaba millet,

Bazı kod parçalarına yardım etmemi isteyen çok sayıda özel mesajım var.

MQL4 ile ilgili sorularınızı buraya yazabilirsiniz, ben de cevaplamak için elimden geleni yapacağım.

Merhaba,

Aşağıdaki sorunu oluşturmak için davetinizi kullanmak istiyorum.

EURUSD->1.29, USDGBP->0.22 gibi karma bir veri yapısı kullanılamadığından, fiyat değişikliklerine göre bir sembol listesini depolamak ve sıralamak için en iyi çözüm ne olabilir?

Enum yok ve mql4'te bir dize ve ilgili bir çift değer tutabilen karma tip veri yapıları yok. Aklıma gelen çözümler ya bir dosya kullanmaktır, ancak bu neredeyse sabit disk okuma ve yazma etkinliği gerektirir. Veya üç dizi kullanmak için; 1 sembol listesi için, biri indeks yer değerlerinin saklanması ve takibi için, diğeri ise gerçek değerler için.

Çok temel (basit) bir problemin etrafını kodlamak zorunda görünüyor. İstediğim tek şey, göreceli güç için tüm euro çiftlerini birbiriyle karşılaştırmak. Bunu nasıl çözersiniz, hangi veri yapısını önerirsiniz?

Bu acemi için herhangi bir cevap veya talimat için teşekkür ederiz!

Bibberpool

 

Göreceli Güç ve Korelasyon Göstergelerini Arayın

liverpool:
Merhaba,

EURUSD->1.29, USDGBP->0.22 gibi karma bir veri yapısı kullanılamadığından, fiyat değişikliklerine göre bir sembol listesini depolamak ve sıralamak için en iyi çözüm ne olabilir?

...

Çok temel (basit) bir problemin etrafını kodlamak zorunda görünüyor. İstediğim tek şey, göreceli güç için tüm euro çiftlerini birbiriyle karşılaştırmak. Bunu nasıl çözersiniz, hangi veri yapısını önerirsiniz?

Bu acemi için herhangi bir cevap veya talimat için teşekkür ederiz! Bibberpool

Merhaba Bibberpool,

Göreceli Güç göstergeleri ve Korelasyon göstergeleri için bu Forex TSD sitesinde arama yapın...

Bu tür göstergeler, farklı çiftleri ve fiyatları ve bunların göreceli güçlerini analiz etmek için tasarlanmıştır.

Yapmak istediğiniz şeyler için iyi örnekler bulabilirsiniz.

Bu yardımcı olur umarım,

Robert

 

Cevabınız için teşekkür ederim

cosmiclifeform:
Merhaba Bibberpool,

Göreceli Güç göstergeleri ve Korelasyon göstergeleri için bu Forex TSD sitesinde arama yapın...

Bu tür göstergeler, farklı çiftleri ve fiyatları ve bunların göreceli güçlerini analiz etmek için tasarlanmıştır.

Yapmak istediğiniz şeyler için iyi örnekler bulabilirsiniz.

Bu yardımcı olur umarım,

Robert

Merhaba, cevabınız için teşekkür ederim ve önerilen konuları kesinlikle araştıracağım. Ancak etrafta çok fazla kod var.

Bu arada C'de kısa bir prototip yaptım. Veriler yalnızca küçük kümelerden oluştuğu için basit bir ekleme sıralaması yaptım ve buna göre bir dize dizisini güncellemek için bu rutini güncelledim.

Bu hafta sonra ilk mql4 programıma aktaracağım (kopyala/yapıştır). İşte kod, belki başkaları için yararlıdır veya birileri daha iyi bir şey yaratmak için yorum yapmak ister.

#include

int main(void) {

int max = 5;

int array[5] = { 3, 5, 2, 1, 4 };

char *symbl[5] = { "EURUSD", "EURGBP", "EURJPY", "EURCHF", "EURCAD" };

int idx = 0;

int swp = 0;

int tmp = 0;

char *tmpsymb = NULL;

printf("--- before\n");

for(idx = 0; idx <= max - 1; idx++) {

printf("%d - %s\n", array, symbl);

}

for(idx = 1 ; idx <= max - 1; idx++) {

swp = idx;

while(swp > 0 && array[swp] < array[swp - 1]) {

tmp = array[swp];

tmpsymb = symbl[swp];

array[swp] = array[swp - 1];

symbl[swp] = symbl[swp - 1];

array[swp - 1] = tmp;

symbl[swp - 1] = tmpsymb;

swp--;

}

}

printf("--- after\n");

for(idx = 0; idx <= max - 1; idx++) {

printf("%d - %s\n", array, symbl);

}

return 0;

}

program yazdırmalıdır:

--- önceki

3 - EURUSD

5 - EURGBP

2 - EURJPY

1 - EURCHF

4 - EURCAD

--- sonrasında

1 - EURCHF

2 - EURJPY

3 - EURUSD

4 - EURCAD

5 - EURGBP

 

Yazar Kravchuk'tan bağımsız filmler arıyorum

Merhaba Topluluk,

Satmak için indie'ler tasarlayan yazar Kravchuk'tan indie'ler arıyorum. Satın almaya istekliydim ama ödeme şekli konusunda uzlaşamıyoruz (miktar değil!?). Ft.dejavu, ft .rainbow,barstatline,diver,linerenko'ya sahip olan var mı? Yardımın için minnettar olurum. Teşekkür ederim

 
bershk:
Merhaba Topluluk, satmak için indie'ler tasarlayan yazar Kravchuk'tan indie'ler arıyorum. Satın almaya istekliydim ama ödeme şekli konusunda uzlaşamıyoruz (miktar değil!?). Ft.dejavu, ft .rainbow,barstatline,diver,linerenko'ya sahip olan var mı? Yardımın için minnettar olurum. Teşekkür ederim

merhaba bershk,

Talebiniz henüz geçerliliğini yitirmediyse, burada yardımcı olabiliriz - bu göstergelerden bazılarıyla çalıştık.

Lütfen yazardan lisans satın almanız gerektiğini ve geri derlenmiş veya yasa dışı olarak elde edilmiş hiçbir şey sağlamadığımızı unutmayın.

Satın almakla ilgileniyorsanız - işte yazarın güncel fiyatları:

Dejavu - 20 dolar; Gökkuşağı - 15 $; Barstatline - 10$; Dalgıç - 20 $; LineRenko - 15 dolar.

Bunları satın almak için yardıma ihtiyacınız varsa lütfen bize info@raitsoft.com yazın , herhangi bir komisyon olmadan lisans satın almanıza yardımcı olacağız.

 

merhaba arkadaşlar ................

mql4'te programlamayı öğrenmeye başladım ve başlangıç için, tanımlayıcıları ve ea'yı analiz ediyorum.

"daily_close _line" göstergesine sahibim ve koda baktım ve ne yaptıkları hakkında hiçbir fikrim olmayan bu yedek kod satırlarını bitirdim ve nasıl çalıştıkları.

Aynısı olabilir, lütfen koda bir göz atın ve bana neler olduğunu söyleyin.

şimdiden bol bol teşekkürler.

eran

//*

//* my_DailyOpen_indicator

//*

//* Revision 1.1 2005/11/13 Midnite

//* Initial DailyOpen indicator

//* based pm

//*

#property copyright "Midnite"

#property link "me@home.net"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

#property indicator_style1 2

#property indicator_width1 1

double TodayOpenBuffer[];

extern int TimeZoneOfData= 0;

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

//| Custom indicator initialization function |

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

int init()

{

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,TodayOpenBuffer);

SetIndexLabel(0,"Open");

SetIndexEmptyValue(0,0.0);

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int lastbar;

int counted_bars= IndicatorCounted();

if (counted_bars>0) counted_bars--;

lastbar = Bars-counted_bars;

DailyOpen(0,lastbar);

return (0);

}

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

//| |

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

int DailyOpen(int offset, int lastbar)

{

int shift;

int tzdiffsec= TimeZoneOfData * 3600;

double barsper30= 1.0*PERIOD_M30/Period();

bool ShowDailyOpenLevel= True;//<<<<---------- thise line-------------------------------

// lastbar+= barsperday+2; // make sure we catch the daily open

lastbar= MathMin(Bars-20*barsper30-1, lastbar);//<<<<-------------------thise line-----------------------

for(shift=lastbar;shift>=offset;shift--){

TodayOpenBuffer[shift]= 0;

if (ShowDailyOpenLevel){

if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec)){ // day change

TodayOpenBuffer[shift]= Open[shift];

TodayOpenBuffer[shift+1]= 0; // avoid stairs in the line

}

else{

TodayOpenBuffer[shift]= TodayOpenBuffer[shift+1];

}

}

}

return(0);

}
 

ERAN123

Şunları yapıyor: günlük açık fiyatı (zaman dilimi kayması olarak TimeZoneOfData'yı dikkate alarak) bulur ve o gün boyunca bu çizgiyi çizer. İşte gün boyunca aynı günlük açılış fiyatını nasıl çizdiğini görmemizi kolaylaştıran bir resim:

ERAN123:
mql4'te programlamayı öğrenmeye başladım ve başlangıç için, tanımlayıcıları ve ea'yı analiz ediyorum.

"daily_close _line" göstergesine sahibim ve koda baktım ve ne yaptıkları hakkında hiçbir fikrim olmayan bu yedek kod satırlarını bitirdim ve nasıl çalıştıkları.

Aynısı olabilir, lütfen koda bir göz atın ve bana neler olduğunu söyleyin.

şimdiden bol bol teşekkürler.

eran

//*

//* my_DailyOpen_indicator

//*

//* Revision 1.1 2005/11/13 Midnite

//* Initial DailyOpen indicator

//* based pm

//*

#property copyright "Midnite"

#property link "me@home.net"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

#property indicator_style1 2

#property indicator_width1 1

double TodayOpenBuffer[];

extern int TimeZoneOfData= 0;

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

//| Custom indicator initialization function |

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

int init()

{

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,TodayOpenBuffer);

SetIndexLabel(0,"Open");

SetIndexEmptyValue(0,0.0);

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int lastbar;

int counted_bars= IndicatorCounted();

if (counted_bars>0) counted_bars--;

lastbar = Bars-counted_bars;

DailyOpen(0,lastbar);

return (0);

}

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

//| |

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

int DailyOpen(int offset, int lastbar)

{

int shift;

int tzdiffsec= TimeZoneOfData * 3600;

double barsper30= 1.0*PERIOD_M30/Period();

bool ShowDailyOpenLevel= True;//<<<<---------- thise line-------------------------------

// lastbar+= barsperday+2; // make sure we catch the daily open

lastbar= MathMin(Bars-20*barsper30-1, lastbar);//<<<<-------------------thise line-----------------------

for(shift=lastbar;shift>=offset;shift--){

TodayOpenBuffer[shift]= 0;

if (ShowDailyOpenLevel){

if(TimeDay(Time[shift]-tzdiffsec) != TimeDay(Time[shift+1]-tzdiffsec)){ // day change

TodayOpenBuffer[shift]= Open[shift];

TodayOpenBuffer[shift+1]= 0; // avoid stairs in the line

}

else{

TodayOpenBuffer[shift]= TodayOpenBuffer[shift+1];

}

}

}

return(0);

}
Dosyalar:
daly_open.gif  30 kb
 
mladen:
ERAN123

Şunları yapıyor: günlük açık fiyatı bulur (zaman dilimi kayması olarak TimeZoneOfData'yı dikkate alarak) ve o gün boyunca bu çizgiyi çizer. İşte gün boyunca aynı günlük açık fiyatı nasıl çizdiğini görmemizi kolaylaştıran bir resim:

üzgünüm bu satırdan bahsediyorum:

double barsper30= 1.0*PERIOD_M30/Period();

ve bu da bir.

lastbar= MathMin(Bars-20*barsper30-1, lastbar);

"20" ve "-1" ne için ve 2 çizgi nasıl birlikte çalışır?

bir ganimet teşekkür ederim.

 

Başlangıçta başka bir şey yazdı.

Bu satırları unutun: bir nedenden dolayı değerlerin hesaplanmaya başladığı başlangıcı sınırlamaya çalışıyorlar (ve bu, grafikteki en eski çubuktan birkaç saat olmalıdır). Kodlayıcı bununla neyi başarmak istedi, belki sadece onun bildiği

ERAN123:
üzgünüm bu satırdan bahsediyorum:

double barsper30= 1.0*PERIOD_M30/Period();

ve bu da bir.

lastbar= MathMin(Bars-20*barsper30-1, lastbar);

"20" ve "-1" ne için ve 2 çizgi nasıl birlikte çalışır?

bir ganimet teşekkür ederim.
 

çok teşekkürler arkadaşım .....bana yardım ettin