오류, 버그, 질문 - 페이지 3076 1...306930703071307230733074307530763077307830793080308130823083...3184 새 코멘트 Yury Lemeshev 2021.08.31 18:42 #30751 Vladimir Karputov # : 첫 번째 질문: 이 코드를 직접 작성하고 변수에 이러한 이름을 지정했습니까? 네. Vladimir Karputov 2021.08.31 18:43 #30752 Yury Lemeshev # : 네. 매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요. Yury Lemeshev 2021.08.31 18:47 #30753 Vladimir Karputov # : 매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요. int intLevelOrderProfit() { int iLOP,iL; ProfitCycle= GlobalVariableGet ( "[" +MAGICs+ "] Profit Cycle" ); iL= GlobalVariableGet ( "[" +MAGICs+ "] Level Orders" )- 1 ; ArrayResize (LOP, GlobalVariableGet ( "[" +MAGICs+ "] Level Orders" )- 1 ); int LOPc;LOPc= 0 ; for (i= 0 ; i< GlobalVariablesTotal (); i++) { if ( StringFind ( GlobalVariableName (i), "[" +MAGICs+ "] Level Order #" )!=- 1 ) { iLOP= GlobalVariableGet ( GlobalVariableName (i)); if (iLOP< GlobalVariableGet ( "[" +MAGICs+ "] Level Orders" )) { /*MT5*/ if ( PositionSelectByTicket ( StringSubstr ( GlobalVariableName (i),( 2 + StringFind ( GlobalVariableName (i), " #" , 0 ))))== true ) ///*MT4*/if(OrderSelect(StringSubstr(GlobalVariableName(i),(2+StringFind(GlobalVariableName(i)," #",0))),SELECT_BY_TICKET,MODE_TRADES)==true) { LOPc++; ArrayFill (LOP,(iLOP- 1 )* 5 + 0 , 1 ,MAGICs); /*MT5*/ ArrayFill (LOP,(iLOP- 1 )* 5 + 1 , 1 ,LOP[iLOP- 1 ][ 1 ]+ PositionGetDouble ( POSITION_PROFIT )+ PositionGetDouble ( POSITION_SWAP )); ///*MT4*/ArrayFill(LOP,(iLOP-1)*5+1,1,LOP[iLOP-1][1]+OrderProfit()+OrderSwap()+OrderCommission()); if (LOPc== 1 ){ ArrayFill (LOP,((iLOP- 1 )* 5 )+ 3 , 1 , StringSubstr ( GlobalVariableName (i),( 2 + StringFind ( GlobalVariableName (i), " #" , 0 ))));} if (LOPc== 2 ){ ArrayFill (LOP,((iLOP- 1 )* 5 )+ 4 , 1 , StringSubstr ( GlobalVariableName (i),( 2 + StringFind ( GlobalVariableName (i), " #" , 0 ))));} if (LOPc== 2 ){LOPc= 0 ;} } } } } if ( ArraySize (LOP)> 0 ) { int iLOPP; iLOPP=Profit; if (CloseLevelOrders==ECLO2){iLOPP=Profit*( GlobalVariableGet ( "[" +MAGICs+ "] Level Orders" ));} for (i= 0 ; i< ArraySize (LOP)/ 5 ; i++) { if ( NormalizeDouble (LOP[i][ 0 ], 0 )==MAGICs) { if ((-LOP[i][ 1 ])<(-iLOPP* 2 ) && (-LOP[i][ 1 ])<(-LOP[i][ 2 ]* 2 )) { ArrayFill (LOP,(i* 5 )+ 2 , 1 ,(LOP[i][ 1 ])/ 2 );} if (LOP[i][ 1 ]>iLOPP && LOP[i][ 1 ]<=LOP[i][ 2 ]) { if (LOP[i][ 3 ]> 0 ) { ticket=LOP[i][ 3 ]; Print ( "-673- Closing by profit " +(LOP[i][ 2 ])+ " ticket " +ticket);intClosePosition();CloseMode= "CloseOneMagic" ;intDeleteGlobalVariables(); GlobalVariableSet ( "[" +MAGICs+ "] Profit Cycle" ,LOP[i][ 2 ]/ 2 +ProfitCycle); } if (LOP[i][ 4 ]> 0 ) { ticket=LOP[i][ 4 ]; Print ( "-677- Closing by profit " +(LOP[i][ 2 ])+ " ticket " +ticket);intClosePosition();CloseMode= "CloseOneMagic" ;intDeleteGlobalVariables(); GlobalVariableSet ( "[" +MAGICs+ "] Profit Cycle" ,LOP[i][ 2 ]/ 2 +ProfitCycle); } GlobalVariableSet ( "[" +MAGICs+ "] INDEX" , GlobalVariableGet ( "[" +MAGICs+ "] INDEX" )/DeMultiplicationVoltage); //Edition 26082021 ArrayFill (LOP,(i* 5 )+ 2 , 1 , 0 ); } } ArrayFill (LOP,(i* 5 )+ 0 , 1 , 0 ); ArrayFill (LOP,(i* 5 )+ 1 , 1 , 0 ); ArrayFill (LOP,(i* 5 )+ 3 , 1 , 0 ); ArrayFill (LOP,(i* 5 )+ 4 , 1 , 0 ); } } return ( 0 ); } Yury Lemeshev 2021.08.31 18:50 #30754 Vladimir Karputov # : 매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요. Expert Advisor에서 저는 모든 것을 함수 iFunctionExample()로 구분합니다. 이 함수 안에는 int용 변수 iFE1, iFE2, iFE3, double d FE1, d FE2, d FE3용 변수가 있습니다. 무엇이 나오는지 이해하기가 더 쉽습니다. Vladimir Karputov 2021.08.31 18:51 #30755 Yury Lemeshev # : Expert Advisor에서 저는 모든 것을 함수 iFunctionExample()로 구분합니다. 이 함수 안에는 int용 변수 iFE1, iFE2, iFE3, double d FE1, d FE2, d FE3용 변수가 있습니다. 무엇이 나오는지 이해하기가 더 쉽습니다. 확인. 설명을 해주시고 코드를 올바르게 삽입하기 시작해주셔서 감사합니다. Maxim Kuznetsov 2021.08.31 19:25 #30756 Yury Lemeshev # : 동시에 두 개 이상의 주문을 처리합니다. 그물. 조건부 진입점 이하 또는 그 이상의 가격을 확인합니다. 조건부 진입점은 원래 배열에 있었지만 지금은 전역에 있습니다. 그리고 숫자의 대체가 있음이 밝혀졌습니다. 그러나 하나님은 그 대체를 축복하셨습니다. 비교만 옳다면. 그러나 변경 사항도 버그입니다. 나는 SymbolInfoBid(name,SYMBOL_BID) 가 0 또는 EMPTY_VALUE를 반환할 수 있다는 것을 알게 되었습니다. 정확성을 확인하는 것이 유용합니다. 그러나 (A>B && BA<0) 경우 이중 비교는 매우 재미있습니다. "B가 ?보다 크거나 이와 같더라도 ??" 하지만 로그를 사용하는 것을 두려워하지 마십시오. 실제로 무슨 일이 일어나고 있는지 보기 위해 변수를 인쇄하십시오. PS/ 물론 변수의 이름이 좋지 않습니다 .. 그러한 코드를 어떻게 읽고 작성합니까 :-) 그리고 가장 중요한 것은 기억하십시오 상위 1 신호는 어디로 내 접근 방식. 코어 고조파 거래 Yury Lemeshev 2021.08.31 19:31 #30757 Maxim Kuznetsov # : 나는 SymbolInfoBid(name,SYMBOL_BID) 가 0 또는 EMPTY_VALUE를 반환할 수 있다는 것을 알게 되었습니다. 정확성을 확인하는 것이 유용합니다. 그러나 (A>B && BA<0) 경우 이중 비교는 매우 재미있습니다. "B가 ?보다 크거나 이와 같더라도 ??" 하지만 로그를 사용하는 것을 두려워하지 마십시오. 실제로 무슨 일이 일어나고 있는지 보기 위해 변수를 인쇄하십시오. PS/ 물론 변수의 이름이 좋지 않습니다 .. 그러한 코드를 어떻게 읽고 작성합니까 :-) 그리고 가장 중요한 것은 기억하십시오 나는 이 오류가 명백해야 하는 곳에 Expert Advisor를 작성할 것입니다. 그렇지 않으면 발생하지 않을 것입니다. 나중에 다시 작성하겠습니다. BA<0 추가 검사를 하여 함수에 들어가지 않게 하지만, 이 검사를 건너뛰는 다른 문자에서 데이터를 가져옵니다. Yury Lemeshev 2021.08.31 21:35 #30758 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ #property version "1.00" #property strict #property script_show_inputs input int Magic =100; input double Volume =0.01; input bool EURUSD =true; input bool EURGBP =true; input bool GBPUSD =true; input double Grid =0.5; extern int Slippage =5; int i,type,ticket,MagiX; double price; string symbol,iOrderComment; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int iGridCreate() { double dGC1; dGC1=SymbolInfoDouble(symbol,SYMBOL_BID); for(i=0; i<25; i++) {GlobalVariableSet(symbol+" BUY "+(1001+i),NormalizeDouble(dGC1=dGC1-(dGC1/100*Grid),SymbolInfoInteger(symbol,SYMBOL_DIGITS)));} dGC1=SymbolInfoDouble(symbol,SYMBOL_BID); for(i=0; i<25; i++) {GlobalVariableSet(symbol+" SELL "+(1001+i),NormalizeDouble(dGC1=dGC1+(dGC1/100*Grid),SymbolInfoInteger(symbol,SYMBOL_DIGITS)));} return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int iMagic() { MagiX=Magic; return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int iGridOpen() { double dGO1; string sGO1; for(i=0; i<GlobalVariablesTotal(); i++) { sGO1=GlobalVariableName(i); symbol=StringSubstr(sGO1,0,StringFind(sGO1," ",0)); dGO1=SymbolInfoDouble(symbol,SYMBOL_BID); if(StringFind(sGO1,"BUY",0)!=-1) { if(dGO1<GlobalVariableGet(sGO1)) { type=0; iOrderComment=dGO1+"<"+GlobalVariableGet(sGO1); intOpenPosition(); GlobalVariableDel(sGO1); } } if(StringFind(sGO1,"SELL",0)!=-1) { if(dGO1>GlobalVariableGet(sGO1)) { type=1; iOrderComment=dGO1+">"+GlobalVariableGet(sGO1); intOpenPosition(); GlobalVariableDel(sGO1); } } } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int intOpenPosition() { MqlTradeRequest TradeRequest={}; MqlTradeResult TradeResult={}; ZeroMemory(TradeRequest);ZeroMemory(TradeResult); TradeRequest.action=TRADE_ACTION_DEAL; TradeRequest.symbol=symbol; TradeRequest.volume=Volume; TradeRequest.type=type; if(type==0){price=SymbolInfoDouble(symbol,SYMBOL_ASK);} if(type==1){price=SymbolInfoDouble(symbol,SYMBOL_BID);} TradeRequest.price=price; TradeRequest.deviation=Slippage; TradeRequest.magic=MagiX; TradeRequest.comment=iOrderComment; if(!OrderSend(TradeRequest,TradeResult)){Print("110");intOpenPosition();} else{ticket=TradeResult.deal;} return(0); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { iMagic(); iGridOpen(); if(EURUSD==true) { symbol="EURUSD"; SymbolSelect(symbol,true); if(GlobalVariablesTotal()==0){iGridCreate();} for(i=0; i<GlobalVariablesTotal(); i++) { if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;} } if(i==GlobalVariablesTotal()){iGridCreate();} } if(EURGBP==true) { symbol="EURGBP"; SymbolSelect(symbol,true); if(GlobalVariablesTotal()==0){iGridCreate();} for(i=0; i<GlobalVariablesTotal(); i++) { if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;} } if(i==GlobalVariablesTotal()){iGridCreate();} } if(GBPUSD==true) { symbol="GBPUSD"; SymbolSelect(symbol,true); if(GlobalVariablesTotal()==0){iGridCreate();} for(i=0; i<GlobalVariablesTotal(); i++) { if(StringFind(GlobalVariableName(i),symbol,0)!=-1){break;} } if(i==GlobalVariablesTotal()){iGridCreate();} } } Yury Lemeshev 2021.08.31 21:41 #30759 티켓 6,7,8은 데이터를 받지 못했습니다. 혹시 제가 틀린 부분이 있다면 알려주시면 감사하겠습니다. 그러나 많은 변경을 시도했지만 오류가 지속됩니다. 시각화 모드에서 MT5 테스터의 문제를 관찰합니다. 파일: bhshrzc2g7.png 27 kb Yury Lemeshev 2021.09.01 11:34 #30760 문제를 해결하려고 합니다. 다음 사항을 확인했습니다. 테스터에서는 모든 로그 쓰기 를 중지합니다. 그리고 이 순간에 실패가 발생하고 메타매틱스는 무너진다. 2020.08.17 06:12:21 EURGBP 0.90496 2020.08.17 06:12:21 EURGBP 매수 0.90496 2020.08.17 06:47:12 GBPUSD 1.3098 2020.08.17 06:47:12 GBPUSD 매수 1.3098 6시 34분 15초에 열지 말아야 할 거래가 열렸습니다. 테스터에서 내 코드를 확인하십시오. 최신 업데이트 후 테스터가 제대로 작동하지 않는 것 같습니다. 파일: du8ozf0qs9.png 67 kb Errors, bugs, questions PREDICT time period FOREX - Trends, Forecasts 1...306930703071307230733074307530763077307830793080308130823083...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
첫 번째 질문: 이 코드를 직접 작성하고 변수에 이러한 이름을 지정했습니까?
네.
네.
매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요.
매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요.
매우 이상한 이름 - 디컴파일러처럼 보입니다. 다른 코드, 즉 직접 작성한 코드를 더 많이 보여주세요.
Expert Advisor에서 저는 모든 것을 함수 iFunctionExample()로 구분합니다. 이 함수 안에는 int용 변수 iFE1, iFE2, iFE3, double d FE1, d FE2, d FE3용 변수가 있습니다. 무엇이 나오는지 이해하기가 더 쉽습니다.
Expert Advisor에서 저는 모든 것을 함수 iFunctionExample()로 구분합니다. 이 함수 안에는 int용 변수 iFE1, iFE2, iFE3, double d FE1, d FE2, d FE3용 변수가 있습니다. 무엇이 나오는지 이해하기가 더 쉽습니다.
확인. 설명을 해주시고 코드를 올바르게 삽입하기 시작해주셔서 감사합니다.
동시에 두 개 이상의 주문을 처리합니다. 그물. 조건부 진입점 이하 또는 그 이상의 가격을 확인합니다. 조건부 진입점은 원래 배열에 있었지만 지금은 전역에 있습니다.
그리고 숫자의 대체가 있음이 밝혀졌습니다. 그러나 하나님은 그 대체를 축복하셨습니다. 비교만 옳다면. 그러나 변경 사항도 버그입니다.
나는 SymbolInfoBid(name,SYMBOL_BID) 가 0 또는 EMPTY_VALUE를 반환할 수 있다는 것을 알게 되었습니다. 정확성을 확인하는 것이 유용합니다.
그러나 (A>B && BA<0) 경우 이중 비교는 매우 재미있습니다. "B가 ?보다 크거나 이와 같더라도 ??"
하지만 로그를 사용하는 것을 두려워하지 마십시오. 실제로 무슨 일이 일어나고 있는지 보기 위해 변수를 인쇄하십시오.
PS/ 물론 변수의 이름이 좋지 않습니다 .. 그러한 코드를 어떻게 읽고 작성합니까 :-) 그리고 가장 중요한 것은 기억하십시오
나는 SymbolInfoBid(name,SYMBOL_BID) 가 0 또는 EMPTY_VALUE를 반환할 수 있다는 것을 알게 되었습니다. 정확성을 확인하는 것이 유용합니다.
그러나 (A>B && BA<0) 경우 이중 비교는 매우 재미있습니다. "B가 ?보다 크거나 이와 같더라도 ??"
하지만 로그를 사용하는 것을 두려워하지 마십시오. 실제로 무슨 일이 일어나고 있는지 보기 위해 변수를 인쇄하십시오.
PS/ 물론 변수의 이름이 좋지 않습니다 .. 그러한 코드를 어떻게 읽고 작성합니까 :-) 그리고 가장 중요한 것은 기억하십시오
나는 이 오류가 명백해야 하는 곳에 Expert Advisor를 작성할 것입니다. 그렇지 않으면 발생하지 않을 것입니다. 나중에 다시 작성하겠습니다.
BA<0 추가 검사를 하여 함수에 들어가지 않게 하지만, 이 검사를 건너뛰는 다른 문자에서 데이터를 가져옵니다.
티켓 6,7,8은 데이터를 받지 못했습니다. 혹시 제가 틀린 부분이 있다면 알려주시면 감사하겠습니다. 그러나 많은 변경을 시도했지만 오류가 지속됩니다.
시각화 모드에서 MT5 테스터의 문제를 관찰합니다.
문제를 해결하려고 합니다.
다음 사항을 확인했습니다.
테스터에서는 모든 로그 쓰기 를 중지합니다. 그리고 이 순간에 실패가 발생하고 메타매틱스는 무너진다.
2020.08.17 06:12:21 EURGBP 0.90496
2020.08.17 06:12:21 EURGBP 매수 0.90496
2020.08.17 06:47:12 GBPUSD 1.3098
2020.08.17 06:47:12 GBPUSD 매수 1.3098
6시 34분 15초에 열지 말아야 할 거래가 열렸습니다.
테스터에서 내 코드를 확인하십시오. 최신 업데이트 후 테스터가 제대로 작동하지 않는 것 같습니다.