묻다! - 페이지 173

 

혼합형 자료구조의 부족을 해결하는 방법

codersguru:
안녕 여러분,

코드의 일부를 도와달라는 개인적인 메시지를 많이 받았습니다.

여기에 MQL4와 관련된 질문을 게시할 수 있습니다. 최선을 다해 답변해 드리겠습니다.

여보세요,

귀하의 초대를 사용하여 다음 문제를 제기하고 싶습니다.

EURUSD->1.29, USDGBP->0.22와 같은 혼합 유형 데이터 구조를 사용할 수 없으므로 가격 변동에 따라 기호 목록을 저장하고 정렬하는 가장 좋은 솔루션은 무엇입니까?

열거형이 없고 mql4에서 문자열과 관련 이중 값을 보유할 수 있는 혼합 유형 데이터 구조 가 없습니다. 내가 생각할 수있는 솔루션은 파일을 사용하는 것이지만 거의 일정한 디스크 읽기 및 쓰기 작업이 필요합니다. 또는 세 개의 배열을 사용하려면; 1은 기호 목록용, 하나는 인덱스 자리 값의 저장 및 추적용, 다른 하나는 실제 값용입니다.

매우 기본적인(간단한) 문제를 코딩해야 하는 것 같습니다. 내가 원하는 유일한 것은 상대 강도에 대해 모든 유로 쌍을 서로 비교하는 것입니다. 이 문제를 어떻게 해결하시겠습니까? 어떤 데이터 구조를 추천하시겠습니까?

이 초보자에 대한 답변이나 지침에 감사드립니다!

비버풀

 

상대 강도 및 상관 관계 지표 검색

liverpool:
여보세요,

EURUSD->1.29, USDGBP->0.22와 같은 혼합 유형 데이터 구조를 사용할 수 없으므로 가격 변동에 따라 기호 목록을 저장하고 정렬하는 가장 좋은 솔루션은 무엇입니까?

...

매우 기본적인(간단한) 문제를 코딩해야 하는 것 같습니다. 내가 원하는 유일한 것은 상대 강도에 대해 모든 유로 쌍을 서로 비교하는 것입니다. 이 문제를 어떻게 해결하시겠습니까? 어떤 데이터 구조를 추천하시겠습니까?

이 초보자에 대한 답변이나 지침에 감사드립니다! 비버풀

안녕하세요 비버풀입니다.

상대 강도 지표 및 상관 관계 지표에 대한 이 Forex TSD 사이트를 검색하십시오...

이러한 유형의 지표는 다양한 쌍과 가격 및 상대적인 강점을 분석하도록 설계되었습니다.

하고 싶은 일에 대한 좋은 예를 찾을 수 있습니다.

도움이 되었기를 바랍니다,

로버트

 

답변 주셔서 감사합니다

cosmiclifeform:
안녕하세요 비버풀입니다.

상대 강도 지표 및 상관 관계 지표에 대한 이 Forex TSD 사이트를 검색하십시오...

이러한 유형의 지표는 다양한 쌍과 가격 및 상대적인 강점을 분석하도록 설계되었습니다.

하고 싶은 일에 대한 좋은 예를 찾을 수 있습니다.

도움이 되었기를 바랍니다,

로버트

안녕하세요 귀하의 답변에 감사드리며 제안된 스레드를 확실히 검색하겠습니다. 그러나 너무 많은 코드가 있습니다.

그 동안 나는 C에서 짧은 프로토타입을 만들었습니다. 데이터가 작은 집합으로만 구성되어 있기 때문에 기본 삽입 정렬 을 사용하고 그에 따라 문자열 배열을 업데이트하도록 루틴을 업데이트했습니다.

이번 주 후반에 첫 번째 mql4 프로그램으로 이식(복사/붙여넣기)할 것입니다. 다음은 다른 사람에게 유용하거나 누군가가 더 나은 것을 만들기 위해 주석을 달고 싶어하는 코드입니다.

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

}

프로그램은 다음을 인쇄해야 합니다.

--- 전에

3 - EURUSD

5 - EURGBP

2 - EURJPY

1 - EURCHF

4 - EURCAD

--- 후에

1 - EURCHF

2 - EURJPY

3 - EURUSD

4 - EURCAD

5 - EURGBP

 

작가 Kravchuk의 인디를 찾고 있습니다

안녕하세요 커뮤니티입니다.

판매용 인디를 디자인하는 작가 Kravchuk의 인디를 찾고 있습니다. 구매하고 싶었지만 결제 방법(금액이 아닌!?)을 조정할 수 없습니다. 자신의 인디 ft.dejavu, ft.rainbow,barstatline,diver,linerenko가 있습니까? 도움을 주시면 감사하겠습니다. 고맙습니다

 
bershk:
안녕하세요 커뮤니티, 저는 판매용 인디를 디자인하는 작가 Kravchuk의 인디를 찾고 있습니다. 구매하고 싶었지만 결제 방법(금액이 아닌!?)을 조정할 수 없습니다. 자신의 인디 ft.dejavu, ft.rainbow,barstatline,diver,linerenko가 있습니까? 도움을 주시면 감사하겠습니다. 고맙습니다

안녕하세요 베르쉬크

귀하의 요청이 아직 유효하지 않은 경우 여기에서 도움을 드릴 수 있습니다. 이러한 표시기 중 일부를 사용하여 작업했습니다.

저작자로부터 라이선스를 구매해야 하며 디컴파일되거나 불법적으로 획득한 자료를 제공하지 않습니다.

구매에 관심이 있으시면 저자의 현재 가격:

데자부 - $20; 레인보우 - $15; 바스타트린 - $10; 다이버 - $20 LineRenko - $15.

구매에 도움이 필요하시면 info@raitsoft.com 으로 메일을 보내주시면 수수료 없이 라이선스 구매를 도와드리겠습니다.

 

안녕 친구들 ...........

나는 mql4에서 프로그래밍하는 법을 배우기 시작했고, 시작하기 위해 idicators와 ea를 분석했습니다.

나는 "daily_close _line" 표시기를 보고 코드를 보고 그들이 무엇을 하고 있는지 전혀 알 수 없는 코드 줄을 실행합니다. 그리고 그들이 어떻게 작동하는지.

같은 코드를 살펴보고 무슨 일이 일어나고 있는지 알려주세요.

미리 감사드립니다.

에란

//*

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

다음을 수행합니다. 일일 시가 를 찾고(TimeZoneOfData를 시간대 이동으로 고려) 해당 날짜를 통해 선을 그립니다. 다음은 하루 동안 동일한 일일 시가를 그리는 방법을 쉽게 볼 수 있는 그림입니다.

ERAN123:
나는 mql4에서 프로그래밍하는 법을 배우기 시작했고, 시작하기 위해 idicators와 ea를 분석했습니다.

나는 "daily_close _line" 표시기를 보고 코드를 보고 그들이 무엇을 하고 있는지 전혀 알 수 없는 코드 줄을 실행합니다. 작동 방식.

같은 코드를 살펴보고 무슨 일이 일어나고 있는지 알려주세요.

미리 감사드립니다.

에란

//*

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

}
파일:
daly_open.gif  30 kb
 
mladen:
ERAN123

다음을 수행합니다. 일일 시가를 찾고(TimeZoneOfData를 시간대 이동으로 고려) 해당 날짜를 통해 선을 그립니다. 다음은 하루 동안 동일한 일일 시가를 그리는 방법을 쉽게 볼 수 있는 그림입니다.

죄송합니다.

이중 barsper30= 1.0*PERIOD_M30/기간();

그리고 이것도.

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

"20"과 "-1"은 무엇이며 두 줄은 어떻게 함께 작동합니까?

전리품 감사합니다.

 

원래 다른 것을 썼습니다.

해당 라인은 잊어버리십시오. 어떤 이유로 값이 계산되기 시작하는 시작점을 제한하려고 합니다(차트에서 가장 오래된 막대에서 몇 시간 거리여야 함). 코더가 그것으로 달성하고 싶었던 것은 아마도 그에게만 알려져 있었을 것입니다.

ERAN123:
죄송합니다.

이중 barsper30= 1.0*PERIOD_M30/기간();

그리고 이것도.

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

"20"과 "-1"은 무엇이며 두 줄은 어떻게 함께 작동합니까?

전리품 감사합니다.
 

고마워 내 친구 ..... 당신은 나를 도왔습니다