초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 411 1...404405406407408409410411412413414415416417418...1503 새 코멘트 [삭제] 2015.08.16 11:16 #4101 Leanid Aladzyeu : 배열에 대해 배우기 시작했습니다. 나는 배열로 주문에 대한 함수를 작성했습니다. 3 배열 = 0 구매, 1= 판매, 2= 총 구매 및 판매 거래. 그런 다음 구매 조건에 if (첫 번째 조건 && 배열 [0] == 0 )을 작성한 다음 구매를 엽니다. 판매를 위해 (첫 번째 조건 && 배열 [1]==0) 판매를 위해 엽니다. 그러나 테스터에서 오류가 발생하고 테스트가 중지됩니다. 무슨 문제가 있습니까? ( "배열 부족" 오류) 따라서 액세스하는 인덱스는 배열 마크업 외부에 있습니다. 예를 들어, 배열[ 3 ]; 그러면 요소 0에서 2까지만 액세스할 수 있습니다. 코드를 확인하십시오. 또한 ArrayResize() 를 사용하여 배열을 표시하지 않았지만 일부 요소를 참조하려고 할 수도 있습니다. Leanid Aladzyeu 2015.08.16 11:20 #4102 코드.. void Oher( int Mag, string Symb, int &mas[ 2 ]) { ArrayInitialize ( mas, 0 ); int tip; int ticket3 =- 1 ; for ( int pos= OrdersTotal ()- 1 ; pos>= 0 ; pos--) { if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==Mag && OrderSymbol()==Symb && OrderTicket()!=ticket3) { ticket3=OrderTicket(); tip=OrderType(); switch (tip) { case 0 :mas[ 0 ]++; mas [ 2 ]++; break ; // 0 покупка case 1 :mas[ 1 ]++; mas [ 2 ]++; break ; // 1 продажа } } continue ; } }Чудо код вставил ) 2 раз получилось за все время что я на сайте) [삭제] 2015.08.16 11:22 #4103 Leanid Aladzyeu : 코드.. 스스로 알아내려고 노력하면 테스터는 오류가 발생한 라인과 라인의 위치를 표시해야 합니다. Leanid Aladzyeu 2015.08.16 11:25 #4104 Tapochun : 스스로 알아내려고 노력하면 테스터는 오류가 발생한 라인과 라인의 위치를 표시해야 합니다. O_o ATP는 다른 것이 무엇인지 몰랐고 터미널은 오류가 있는 곳을 찔렀습니다. 처음으로 치명적인 오류가 발생 했습니다. case 1 :mas[ 1 ]++; mas [ 2 ]++; break ; // 1 продажа 그녀에게 침. Leanid Aladzyeu 2015.08.16 11:39 #4105 수정했습니다. 배열이 2개뿐이었고 3이 필요했습니다 . 배열 초기화 와 함수에서 숫자는 +1이 되었습니다. 그리고 획득) Evgeniy Zykov 2015.08.17 14:07 #4106 표시기의 확인을 구현하는 방법을 알려주세요. 결론은 새로운 바가 생겼을 때 어드바이저가 인디케이터를 참조하고 현재 인디케이터에는 아직 데이터가 없고 이전 바의 데이터를 가져오는 것입니다. 아직 계산) 이 매복을 우회하는 방법. 테스터에서 모든 것이 정상입니다. 데모에서는 괜찮습니다. 그렇지 않습니다! 모두 관련이 없습니다. 결정됐다. Georgiy Liashchenko 2015.08.18 00:43 #4107 안녕하세요 초보자 문제가 있습니다 ... 예를 들어, 시스템이 마지막 막대의 종가와 특정 기간의 고점 및 저점을 비교하도록 강제할 수는 없습니다. 마지막 20바. 내가 무엇을 잘못하고 있지? extern int MAGIC = 90324752; extern int START_HOUR = 7; extern int FINISH_HOUR = 18; extern int TRADE_LIMIT = 3; extern int SMMA_PERIOD = 100; extern int BB_PERIOD = 50; extern double BB_DEV = 1; extern double LOT = 1; extern double StopLoss = 400; extern double TakeProfit = 2000; void OnTick() { static int TICKET; double SMMA = iMA (Symbol(),0,SMMA_PERIOD,0,MODE_SMMA,PRICE_CLOSE,0); double BB_UP = iBands(Symbol(),0,BB_PERIOD,BB_DEV,0,PRICE_CLOSE,MODE_UPPER,0); double HIGHEST = High[iHighest( Symbol (), 0 ,MODE_HIGH, 20 , 0 )]; if(Hour() >= START_HOUR && Hour() <= FINISH_HOUR && TRADE_COUNT < TRADE_LIMIT && POS_OPENED == FALSE && Seconds() >= 55 ) if(Minute() == 29 || Minute() == 59) { if(Close[0] > SMMA && Close[0] > BB_UP && Close[ 0 ] >= HIGHEST ) { TICKET = OrderSend ( Symbol (),OP_BUY,LOT,Ask, 0 ,Ask-StopLoss* Point ,Ask+TakeProfit* Point , NULL ,MAGIC, 0 ,Blue); if(TICKET < 0) { Alert("Order Send failed, error # ", GetLastError() ); } } } } Alert를 통해 확인해보니 이해가 안가는 이유로 테스터는 맨 마지막 틱부터 계산해서 최대값을 주는데 이 값을 줍니다 진드기가있는만큼 주문이 열리지 않습니다. 그리고 두 번째 문제는 EA가 다음 바가 열릴 때까지 기다리게 하는 방법입니다(30m 주기)? 제어점으로 테스트하면 모든 것이 정상이지만 틱으로 테스트하면 그런 다음 어드바이저는 예를 들어 손절매로 마감된 동일한 바에서 즉시 열립니다... 틱 여부에 관계없이 어떻게 거래를 마감할 수 있습니까? 예를 들어, 30m의 기간에 바가 끝나기 5초 전에 주문을 종료하고 싶습니다(29.55, 59.55) 그 순간의 모든 데이터를 기반으로 합니다. 이 단계에서 문제는 5초 이내에 틱이 발생하지 않으면 발생하지 않는다는 것입니다. 논리 연산 이 없으면 신호가 수신되지 않고 다음 신호까지 순간이 누락됩니다. 이론상으로는 쓰레기이지만 실제로 테스터에서 다음 신호는 어떤 이유로 몇 초 후에도 나타납니다. 미리 감사드립니다! 오류, 버그, 질문 공개 거래 확인 문제 [ARCHIVE] 포럼을 어지럽히 지 Evgeniy Zykov 2015.08.18 10:02 #4108 댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다. 나는 코드를 호출 : void UserMarketComment( ) { string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ"; if(AccountProfit()<0) st=st+"ий убыток="; else st=st+"ая прибыль="; st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency(); Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD), "\n ",st); } 새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다. 출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까? Questions from Beginners MQL5 Questions from Beginners MQL4 초보자의 질문 MQL4 MT4 Alexey Viktorov 2015.08.18 17:19 #4109 ForTorg ZEVs : 댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다. 나는 코드를 호출 : void UserMarketComment( ) { string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ"; if(AccountProfit()<0) st=st+"ий убыток="; else st=st+"ая прибыль="; st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency(); Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD), "\n ",st); } 새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다. 출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까? 댓글()만 완전히 대체할 수 있는 것 같습니다. 따라서 각 틱에 대한 주석의 일부를 변경하려면 각 틱에 대한 주석을 완전히 변경해야 합니다. Alexey Volchanskiy 2015.08.18 18:24 #4110 ForTorg ZEVs : 댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다. 나는 코드를 호출 : void UserMarketComment( ) { string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ"; if(AccountProfit()<0) st=st+"ий убыток="; else st=st+"ая прибыль="; st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency(); Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD), "\n ",st); } 새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다. 출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까? 따라서 주석에 제어 문자 "\n"이 있습니다. 이것은 줄 바꿈 문자입니다. 제거하면 여러 줄이 없습니다. 1...404405406407408409410411412413414415416417418...1503 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
배열에 대해 배우기 시작했습니다.
나는 배열로 주문에 대한 함수를 작성했습니다. 3 배열 = 0 구매, 1= 판매, 2= 총 구매 및 판매 거래.
그런 다음 구매 조건에 if (첫 번째 조건 && 배열 [0] == 0 )을 작성한 다음 구매를 엽니다.
판매를 위해 (첫 번째 조건 && 배열 [1]==0) 판매를 위해 엽니다.
그러나 테스터에서 오류가 발생하고 테스트가 중지됩니다. 무슨 문제가 있습니까? ( "배열 부족" 오류)
따라서 액세스하는 인덱스는 배열 마크업 외부에 있습니다. 예를 들어, 배열[ 3 ]; 그러면 요소 0에서 2까지만 액세스할 수 있습니다. 코드를 확인하십시오.
또한 ArrayResize() 를 사용하여 배열을 표시하지 않았지만 일부 요소를 참조하려고 할 수도 있습니다.
코드..
스스로 알아내려고 노력하면 테스터는 오류가 발생한 라인과 라인의 위치를 표시해야 합니다.
O_o ATP는 다른 것이 무엇인지 몰랐고 터미널은 오류가 있는 곳을 찔렀습니다. 처음으로 치명적인 오류가 발생 했습니다.
그녀에게 침.
표시기의 확인을 구현하는 방법을 알려주세요.
결론은 새로운 바가 생겼을 때 어드바이저가 인디케이터를 참조하고 현재 인디케이터에는 아직 데이터가 없고 이전 바의 데이터를 가져오는 것입니다. 아직 계산)
이 매복을 우회하는 방법. 테스터에서 모든 것이 정상입니다. 데모에서는 괜찮습니다. 그렇지 않습니다!
모두 관련이 없습니다. 결정됐다.
안녕하세요 초보자 문제가 있습니다 ...
예를 들어, 시스템이 마지막 막대의 종가와 특정 기간의 고점 및 저점을 비교하도록 강제할 수는 없습니다.
마지막 20바. 내가 무엇을 잘못하고 있지?
Alert를 통해 확인해보니 이해가 안가는 이유로 테스터는 맨 마지막 틱부터 계산해서 최대값을 주는데 이 값을 줍니다
진드기가있는만큼 주문이 열리지 않습니다.
그리고 두 번째 문제는 EA가 다음 바가 열릴 때까지 기다리게 하는 방법입니다(30m 주기)? 제어점으로 테스트하면 모든 것이 정상이지만 틱으로 테스트하면
그런 다음 어드바이저는 예를 들어 손절매로 마감된 동일한 바에서 즉시 열립니다...
틱 여부에 관계없이 어떻게 거래를 마감할 수 있습니까? 예를 들어, 30m의 기간에 바가 끝나기 5초 전에 주문을 종료하고 싶습니다(29.55, 59.55)
그 순간의 모든 데이터를 기반으로 합니다. 이 단계에서 문제는 5초 이내에 틱이 발생하지 않으면 발생하지 않는다는 것입니다.
논리 연산 이 없으면 신호가 수신되지 않고 다음 신호까지 순간이 누락됩니다. 이론상으로는 쓰레기이지만 실제로 테스터에서 다음 신호는
어떤 이유로 몇 초 후에도 나타납니다.
미리 감사드립니다!댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다.
나는 코드를 호출 :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다.
출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까?
댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다.
나는 코드를 호출 :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다.
출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까?
댓글()만 완전히 대체할 수 있는 것 같습니다.
따라서 각 틱에 대한 주석의 일부를 변경하려면 각 틱에 대한 주석을 완전히 변경해야 합니다.
댓글에 도움이 됩니다. 주석은 각 막대에 형성됩니다. 각 틱에서 기존 댓글에 더 많은 텍스트를 추가하고 싶습니다.
나는 코드를 호출 :
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
새 주석을 추가하고 새 줄의 각 눈금에 텍스트를 아래로 슬라이드합니다.
출력하기 전에 마지막 몇 줄을 삭제하려면 어떻게 해야 합니까?