코딩하는 방법? - 페이지 223

 

...

(csv 파일에 값을 쓰는 EA를 볼 수 없기 때문에) 하나의 FileFlush()가 누락되었다고 생각합니다. 파일을 닫지 않고 즉시 "다른 사람"이 액세스할 수 있는 파일을 변경하려는 경우(암시적으로 플러시를 사용합니다. ) 변경 사항을 항상 디스크에 플러시해야 합니다.

문안 인사

믈라덴

sunshineh:
안녕,

CSV 파일로 작업하는 EA를 작성 중입니다.

테스트를 위해 CSV 파일을 다음 폴더에 넣습니다.

/테스터/파일

다음은 제 EA의 일부입니다.

int handle = 0;

int Long = 0;

handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

내 EA에서 CSV 파일을 읽은 다음 몇 가지 정수를 적습니다.

이제 테스트를 수행하고 "인쇄" 메시지 저널을 읽을 때 CSV 파일에 더 이상 기록되지 않은 오래된 정수를 자주 얻습니다!!

예를 들어:

먼저 3이 작성되고 내 EA가 작동하고 파일에 0을 씁니다.

CSV 파일에서 3개만 볼 수 있습니다!!

CSV 파일을 지우고 " /tester/files" 폴더에 3이 있는 새 CSV 파일을 넣으면 이전 테스트에서 0만 읽을 수 있습니다!!!! 그러나 EA가 0을 읽는 곳을 찾을 수 없습니다!!!

미쳐버릴거야!!!!!

당신이 내 질문을 이해하고 나에게 팁을 줄 수 있기를 바랍니다!!
 

누군가 경고 기능을 추가하는 데 도움을 줄 수 있습니까?

이 표시기의 알람 기능인 컬러 알람을 추가하고 싶습니다. 나는 오랫동안 "알람이 있으면"을 사용하려고 시도했지만 성공하지 못했습니다. 누군가 나를 도울 수 있습니까? 매우 감사합니다! ~ 제 영어가 서툴러서 죄송합니다.

#속성 표시기_차트_창

#속성 표시기_버퍼 4

#property indicator_color1 포레스트그린

#property indicator_color2 빨간색

#property indicator_color3 블랙

#property indicator_color4 블랙

//---- 입력 매개변수

extern int FastClosePeriod=13;

외부 정수 FastCloseShift=0;

extern int FastOpenPeriod=34;

외부 정수 FastOpenShift=0;

extern int SlowClosePeriod=34;

extern int SlowCloseShift=0;

extern int SlowOpenPeriod=62;

외부 int SlowOpenShift=0;

//---- 표시기 버퍼

이중 ExtBlueBuffer[];

이중 ExtRedBuffer[];

이중 ExtDarkVioletBuffer[];

이중 ExtBlackBuffer[];

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

//| 커스텀 인디케이터 초기화 기능 |

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

정수 초기화()

{

//---- 그릴 때 줄 이동

SetIndexShift(0,FastCloseShift);

SetIndexShift(1,FastOpenShift);

SetIndexShift(2,SlowCloseShift);

SetIndexShift(3,SlowOpenShift);

//---- 그릴 때 건너뛴 첫 번째 위치

SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);

SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);

SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);

SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);

//---- 3개의 인디케이터 버퍼 매핑

SetIndexBuffer(0,ExtBlueBuffer);

SetIndexBuffer(1,ExtRedBuffer);

SetIndexBuffer(2,ExtDarkVioletBuffer);

SetIndexBuffer(3,ExtBlackBuffer);

//---- 그리기 설정

SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

SetIndexStyle(1,DRAW_HISTOGRAM,0,2);

SetIndexStyle(2,DRAW_NONE,0,2);

SetIndexStyle(3,DRAW_NONE,0,2);

//---- 인덱스 레이블

SetIndexLabel(0,"빠른 닫기");

SetIndexLabel(1,"빠른 열기");

SetIndexLabel(2,"느리게 닫기");

SetIndexLabel(3,"SlowOpen");

//---- 초기화 완료

리턴(0);

}

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

//| 9제곱 트레이더 |

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

정수 시작()

{

정수 제한;

int counted_bars=IndicatorCounted();

//---- 가능한 오류 확인

if(counted_bars<0) return(-1);

//---- 마지막으로 계산된 막대가 다시 계산됩니다.

if(counted_bars>0) counted_bars--;

limit=막대-counted_bars;

//---- 메인 루프

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

{

//---- SetIndexShift가 위에서 호출되었기 때문에 ma_shift가 0으로 설정됨

ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);

ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);

}

//---- 완료

리턴(0);

 
 
파일:
example.gif  12 kb
example.mq4  3 kb
 
wolfe:
여기 당신이 간다. 나는 이것을 아주 빨리 만들었고, 네, 할 수 있습니다.

코딩 예제는 첨부된 example.mq4를 살펴보세요.

또한 주석이 있는 스크린샷이 포함되어 있으므로 RSI 값이 배열에 틱 단위로 저장되는 것을 볼 수 있습니다.

안녕하세요 울프님

당신의 타이머와 노력에 대해 대단히 감사합니다. 나는 이것을 시도 할 것이다

문안 인사,

MSV

 
 

볼린저 밴드

안녕,

누군가 볼린저 밴드 공식(종료 시 20주기 dev 2)을 Excel 스프레드시트로 만드는 데 도움을 줄 수 있습니까? 미리 감사드립니다.

 

안녕하세요 여러분!!

내 EA에서 "하루에 한 번의 구매 및 판매" 주문만 열어야 합니다. 이 작업을 수행하는 코드는 무엇입니까?

 
Apolofx:
안녕하세요 여러분!! 내 EA에서 "하루에 한 번의 구매 및 판매" 주문만 열어야 합니다. 이 작업을 수행하는 코드는 무엇입니까?

모든 마감된 주문을 반복해서 확인하고 각각의 기호와 마감 시간을 확인해야 한다고 생각합니다. Symbol()과 일치하고 가장 최근의 마감 시간이 있는 주문을 선택하세요. 그런 다음 24시간을 추가하고 변수에 사용하여 현재 시간 을 테스트하고 마지막 주문 + 24시간에 도달하면 거래를 엽니다.

 

또는 더 간단한 방법은 TimeDayOfYear 함수 를 사용하고 일치하는 기호 및 매직 번호로 마지막으로 마감된 주문을 확인하는 것입니다. 오늘과 같은 요일이 아닌지 확인하십시오.

TimeDayOfYear의 정의 및 사용에 대한 도움말 파일을 살펴보십시오.

문안 인사

럭스