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

 

MrPip 감사합니다

나는 주로 당신이 어디에서 왔는지 알 수 있습니다. 나는 전에 그것을주고 막히면 다시 물어볼 것입니다.

건배

 
MrPip:
아래 빨간색으로 수정. 로버트

로버트.. 감사합니다. 도움이 되었습니다.

 

MTF 표시기가 있는 막대 카운트다운

MTF = 다중 시간 프레임 표시기

이중 BarCountDownInSec()

{

이중 g;

g=시간[0]+기간()*60-TimeCurrent();

반환(g);

}

위의 함수 는 현재 차트의 막대에 대한 두 번째 카운트다운을 제공합니다. 따라서 5분 차트에 배치하면 5분 막대마다 두 번째 카운트다운이 표시됩니다.

Q: 내가 5분 차트에 있을 때 15분 막대(예: 3x5분 막대)에 대한 초 카운트다운을 얻으려면 6.00에서 6.15까지 15분 카운트다운을 해야 합니다. 그런 다음 6.15에서 6.30, 내가 5분 차트에 있는 동안 ???

 

내 프로그래밍 문제(BUG)

안녕,

누군가 나를 위해 버그를 해결하는 데 도움을 줄 수 있습니까? 코드를 다시 컴파일하지 않는 한 그리기 히스토그램이 표시되지 않는다는 사실만 알았습니다.

도와주세요!!! 제발 제발 제발

문안 인사

파일:
 

아이커스텀 문제

EA의 iCustom 부분에 사용해야 하는 이 indi의 문자열 이름은 무엇입니까?

나는 시도했다

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

그래서 다음에 무엇을 해야 할지 모르겠습니다.

또는 ATRMode, 수동 모드 등 문자열 이름을 입력해야 합니까?

어떤 도움이라도 좋을 것입니다

 

아무도 오류를 볼 수 있습니까? 이 코드에서 오류가 어디에 있는지 알 수 없습니다. 나는 계속 얻는다. 이것을 지적하는 데 도움이 될 것입니다. 감사해요

LongSig 변수가 정의되지 않았습니다.

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

//| 오픈 포지션 계산 |

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

정수 계산CurrentOrders() {

구매 = 0; 판매 = 0;

문자열 기호=Symbol();

//----

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 계속;

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

{

if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) 구매++;

if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) 판매++;

}

}

//---- 반품 주문량

if(매수>0) 반환(매수);

그렇지 않으면 반환(-판매);

}

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

//| 미결 주문 조건 확인 |

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

무효 CheckForSignals() {

Buysig=거짓;

Sellsig=거짓;

닫기 구매=거짓;

closesell=거짓;

이중 MOM = iCustom(NULL,0,"Momentum-ZL",MOMPeriod,0,shift);

이중 SRL = iCustom(NULL,0,"MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233);

이중 SRS = iCustom(NULL,0,"MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod,ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234);

이중 QQE_RsiMa = iCustom(NULL,0,"QQE",0,shift);

이중 QQE_TrLevelSlow = iCustom(NULL,0,"QQE", 1, 시프트);

이중 QQE_RsiMaPrev = iCustom(NULL,0,"QQE",0,shift + 1);

이중 QQE_TrLevelSlowPrev = iCustom(NULL,0,"QQE", 1, shift + 1);

이중 피벗 = iCustom(NULL, 0, "피벗 포인트 다중 시간 프레임", 미드 피벗, Fhr, 매일, 매주, 매월, 1, 시프트)

부울 LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0;

부울 ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0;

부울 LongSig2 = MOM>0.0;

부울 ShortSig2 = MOM<0.0;

bool LongSig3 = SRL>피벗;

bool ShortSig3 = SRS<피벗;

buysig = LongSig && LongSig2 && LongSig3;

Sellsig = ShortSig && ShortSig2 && ShortSig3;

닫기 구매 = 판매 신호;

닫기 판매 = 구매;

}

무효 CheckForOpen() {

if (마지막==시간[0]) 반환;

int res,ord;

이중 진입, 정지, 이익;

ord=CalculateCurrentOrders();

if (ord!=0) CheckForClose();

ord=CalculateCurrentOrders();

//---- 구매 조건

if (buys<ConsecutiveTrades && buysig) {

res=OpenAtMarket(OP_BUY,Lots);

if (res<0) Print("구매 주문 열기 오류: ",ErrorDescription(GetLastError()));

그렇지 않으면 마지막=시간[0];

}

//---- 판매 조건

if (-sells<ConsecutiveTrades && Sellsig) {

res=OpenAtMarket(OP_SELL,Lots);

if (res<=0) Print(" 판매 주문 열기 오류: ",ErrorDescription(GetLastError()));

그렇지 않으면 마지막=시간[0];

}

}

int OpenAtMarket(int 모드, 이중 로트) {

int res,tr,col;

이중 공개 가격, sl, tp;

시도 = 0;

동안 (res<=0 && 시도<OrderTriesNumber) {

tr=0; 동안 (tr<5 && !IsTradeAllowed()) { tr++; 수면(2000); }

새로 고침 비율();

if (모드==OP_SELL) {

openprice=입찰가;

col=빨간색;

} 또 다른 {

//openprice=nd(문의);

openprice=묻다;

col=파란색;

}

res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+expertId,expertId,0,col);

시도++;

}

반환(res);

}

고쳤다

 

vB0-4의 경우 문자 O 대신 숫자 0 0으로 목록의 첫 번째 항목을 시도하십시오.

로버트

Beno:
EA의 iCustom 부분에 사용해야 하는 이 indi의 문자열 이름은 무엇입니까?

나는 시도했다

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

그래서 다음에 무엇을 해야 할지 모르겠습니다.

또는 ATRMode, 수동 모드 등 문자열 이름을 입력해야 합니까?

어떤 도움이라도 좋을 것입니다
 

미스터 핍스 감사합니다

정렬

 
MrPip:
아래 빨간색으로 수정. 로버트

나는 이것을 시도했지만 작동하지 않는 것 같습니다. 나는 하루에 하나의 거래 만 원합니다.

for(int a=0;a<OrdersTotal();a++)

{

if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true)

{

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

{

if (TimeDay(OrderOpenTime()) >= TimeDay(TimeCurrent())) 거래 = 거짓;

if (TimeDay(OrderOpenTime()) < TimeDay(TimeCurrent())) 거래 = true;

}

}

}
 
antone:
나는 이것을 시도했지만 작동하지 않는 것 같습니다. 나는 하루에 하나의 거래 만 원합니다.

다른 EA에서 이것을 사용했고 올바르게 작동합니다.

나는 오늘 열리는 대신 오늘 닫힌 거래를 확인 합니다.

시작시 사용법은

if (LastTradeClosedToday()) return(0);

// 여기에 새로운 거래를 여는 코드

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

//| LastTrade오늘 마감 |

//| 오늘 마지막 거래가 마감되었는지 기록을 확인하십시오 |

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

bool LastTradeClosedToday()

{

정수, 총계;

bool 닫힘;

총계 = HistoryTotal();

(cnt = 총계 - 1, cnt >= 0, cnt--)

{

주문 선택(cnt, SELECT_BY_POS, MODE_HISTORY);

if(OrderSymbol()!=Symbol()) 계속;

if (OrderMagicNumber() != MagicNumber) 계속;

닫힘 = 거짓;

if (OrderType() == OP_BUY)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()))

{

닫힘 = 참;

}

cnt = 0;

}

if (OrderType() == OP_SELL)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent()))

{

닫힘 = 참;

}

cnt = 0;

}

}

반환(닫힘);

}