MQL 전문가를 위한 질문 - 페이지 8 123456789101112131415...18 새 코멘트 Victor Nikolaev 2011.04.20 10:42 #71 Rita : 설명 해주셔서 감사합니다. 여러 기능을 하나로 합쳐야 할 것 같습니다. 어딜가나 논리는 똑같다 Рита 2011.05.30 09:10 #72 -안녕하세요. 이전 Expert Advisor에서 우리는 다음과 같은 직위 공개를 사용했습니다(I.Kim의 기능). if (NumberOfPositions( NULL ,OP_BUY,Magic1)< 1 ) { //если нет откр. позиций ti=OpenPosition( NULL ,OP_BUY, Lots, 0 , 0 ,Magic1); } } } //если условия соответствуют заданным 이제 다른 어드바이저를 작성할 때 이 코드를 복사합니다. 그리고 갑자기 나는 컴파일 할 때 얻는다. 왜 오류가 나오는지 알 수 없습니다! 코드는 엄격하게 균형을 이룹니다. 뿐만 아니라! (전역 변수로 선언된) 매개변수 ti 를 제거하면 컴파일 오류가 사라집니다. if (NumberOfPositions(Symbol_1,-1, MagicNumber) ==1 && NumberOfPositions(Symbol_2,-1, MagicNumber) <1 ) { //если есть открытая позиция 1 символа, - открываем позицию второго символа: //ti= OpenPosition(Symbol_2,Positions_Symbol_2, Lots_1,0 ,0,MagicNumber); } //if ( ti>0 ) //MessageBox("Позиции открыты! Не забудьте отключить Start_Trade",0,1 ); 그러나 나중에 f- 및 MessageBox 실행을 구현할 수 있도록 티켓( ti )과 함께 필요합니다. 아침에는 알 수가 없습니다. 제발. 말해봐, 여기서 부정확성은 무엇인가? OpenPosition( - 갑자기 오류가 발생하기 전에 ti= 를 추가하는 이유는 무엇입니까? Dmitry Fedoseev 2011.05.30 09:48 #73 아마도 OpenPosition()은 void로 선언되지만 int여야 합니다. int OpenPosition(....){ .... } Рита 2011.05.30 09:59 #74 정수 감사합니다! 네, 바로 그 일이 일어났습니다! 이제 수정했고 모든 것이 잘 컴파일되었습니다! Рита 2012.01.11 18:41 #75 안녕하세요. Expert Advisor에서 특별한 이유 없이 갑자기 모든 틱마다 로그가 인쇄되기 시작했습니다. 2012.01.11 22:28:19 Complex_Common_01mod EURCHF,H1: ObjectCreate 함수 에 대해 알 수 없는 하위 창 번호 -1 코드에서 사용자 정의 칠면조를 호출합니다(그림 참조). //-------------- задаем значения индикатора Complex_Common по первому символу -------- double Complex_1_1= iCustom ( NULL ,Tf, "Complex_Common_01mod" ,Period_low,Period_fast,m, 0 ); //---------------задаем значения индикатора Complex_Common по второму символу ------------ double Complex_1_2= iCustom ( NULL ,Tf, "Complex_Common_01mod" ,Period_low,Period_fast,n, 0 ); 제발. 오류가 어디에서 왔는지 말해줘? 이전에는 존재하지 않았습니다. 약간의 코드 변경 - 표시 부분은 전혀 건드리지 않았습니다! 그리고 각 진드기의 로그는이 비문을 발행하기 시작했습니다 ... ObjectCreate 함수 - 코드에서 전혀 사용하지 않습니다. 볼륨 표시기 사용 방법 코딩하는 방법? Murrey 수학 거래 시스템 Рустам 2012.01.11 19:50 #76 표시기는 해당 창의 이름을 찾지만 찾지 못합니다. https://docs.mql4.com/en/customind/IndicatorShortName 참조 khorosh 2012.01.11 20:12 #77 Rita : 정수 감사합니다! 네, 바로 그 일이 일어났습니다! 이제 수정했고 모든 것이 잘 컴파일되었습니다! 다만, 티켓을 받기 위해서는 Kim의 기능을 정제해야 합니다. Рита 2012.01.12 07:41 #78 FAQ : 표시기는 해당 창의 이름을 찾지만 찾지 못합니다. https://docs.mql4.com/en/customind/IndicatorShortName 참조 이것이 표시기의 결함으로 밝혀졌습니까? 고문의 잘못은 전혀 아닙니까? 이걸로 무엇을 해야 할지 잘 모르겠습니다. 나는 고문의 코드에서이 칠면조의 창을 호출하도록 요구하지 않습니다! 어렵지 않다면 부탁드립니다. 누군가이 결함을 수정하는 방법을 알려주십시오. (- ObjectCreate 함수에 대한 알 수 없는 하위 창 번호 -1 ) ? 표시기 코드는 다음과 같습니다. #property copyright "SemSemFX@rambler.ru" #property link "http://onix-trade.net/forum/index.php?showtopic=107" //индикатор Complex_Common_01mod #property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Lime #property indicator_color2 DodgerBlue #property indicator_color3 Red #property indicator_color4 Magenta #property indicator_color5 Aqua #property indicator_width1 2 #property indicator_width2 2 #property indicator_width3 2 #property indicator_width4 2 #property indicator_width5 2 extern int Period_low = 21 ; extern int Period_fast = 8 ; //---- buffers double USD[]; double EUR[]; double GBP[]; double CHF[]; double JPY[]; int wndNum; // Номер подокна индикатора string wndName; // Наименование окна //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle ( 0 , DRAW_LINE ); SetIndexBuffer ( 0 ,USD); SetIndexLabel ( 0 , "USD" ); SetIndexStyle ( 1 , DRAW_LINE ); SetIndexBuffer ( 1 ,EUR); SetIndexLabel ( 1 , "EUR" ); SetIndexStyle ( 2 , DRAW_LINE ); SetIndexBuffer ( 2 ,GBP); SetIndexLabel ( 2 , "GBP" ); SetIndexStyle ( 3 , DRAW_LINE ); SetIndexBuffer ( 3 ,CHF); SetIndexLabel ( 3 , "CHF" ); SetIndexStyle ( 4 , DRAW_LINE ); SetIndexBuffer ( 4 ,JPY); SetIndexLabel ( 4 , "JPY" ); //---- return ( 0 ); } int deinit() { // Удаляем все графические объекты DeleteObject( "USD" ); DeleteObject( "EUR" ); DeleteObject( "GBP" ); DeleteObject( "CHF" ); DeleteObject( "JPY" ); return ( 0 ); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars= IndicatorCounted (); //---- проверка на возможные ошибки if (counted_bars< 0 ) return (- 1 ); //---- последний посчитанный бар будет пересчитан if (counted_bars> 0 ) counted_bars-= 10 ; limit= Bars -counted_bars; //---- основной цикл int Price= 6 ; int Mode= 2 ; for ( int i= 0 ; i<limit; i++) { USD[i]= ( iMA ( "EURUSD" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "EURUSD" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "GBPUSD" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "GBPUSD" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "USDCHF" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "USDCHF" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "USDJPY" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "USDJPY" , 0 ,Period_low, 0 ,Mode,Price,i))* 100 ; EUR[i]= ( iMA ( "EURUSD" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "EURUSD" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "EURGBP" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "EURGBP" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "EURCHF" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "EURCHF" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "EURJPY" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "EURJPY" , 0 ,Period_low, 0 ,Mode,Price,i))* 100 ; GBP[i]= ( iMA ( "GBPUSD" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "GBPUSD" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "EURGBP" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "EURGBP" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "GBPCHF" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "GBPCHF" , 0 ,Period_low, 0 ,Mode,Price,i))* 10000 + ( iMA ( "GBPJPY" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "GBPJPY" , 0 ,Period_low, 0 ,Mode,Price,i))* 100 ; CHF[i]= ( iMA ( "USDCHF" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "USDCHF" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "EURCHF" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "EURCHF" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "GBPCHF" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "GBPCHF" , 0 ,Period_fast, 0 ,Mode,Price,i))* 10000 + ( iMA ( "CHFJPY" , 0 ,Period_fast, 0 ,Mode,Price,i)- iMA ( "CHFJPY" , 0 ,Period_low, 0 ,Mode,Price,i))* 100 ; JPY[i]= ( iMA ( "USDJPY" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "USDJPY" , 0 ,Period_fast, 0 ,Mode,Price,i))* 100 + ( iMA ( "EURJPY" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "EURJPY" , 0 ,Period_fast, 0 ,Mode,Price,i))* 100 + ( iMA ( "GBPJPY" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "GBPJPY" , 0 ,Period_fast, 0 ,Mode,Price,i))* 100 + ( iMA ( "CHFJPY" , 0 ,Period_low, 0 ,Mode,Price,i)- iMA ( "CHFJPY" , 0 ,Period_fast, 0 ,Mode,Price,i))* 100 ; } object( "USD" , "USD" , 10 , indicator_color1, 5 ); object( "EUR" , "EUR" , 10 , indicator_color2, 18 ); object( "GBP" , "GBP" , 10 , indicator_color3, 31 ); object( "CHF" , "CHF" , 10 , indicator_color4, 44 ); object( "JPY" , "JPY" , 10 , indicator_color5, 57 ); //---- return ( 0 ); } //+------------------------------------------------------------------+ // Удаляем графический объект void DeleteObject( string name) { ObjectDelete (name+ WindowExpertName ()); } // Рисуем метку void object( string name, string _text, int fontsize, color color_, int value) { string objName = name+ WindowExpertName (); ObjectCreate (objName, OBJ_LABEL , WindowFind ( WindowExpertName ()), 0 , 0 ); ObjectSetText (objName, _text, fontsize, "Verdana" , color_); ObjectSet (objName, OBJPROP_CORNER , 1 ); ObjectSet (objName, OBJPROP_XDISTANCE , 4 ); ObjectSet (objName, OBJPROP_YDISTANCE , value); } Рустам 2012.01.12 10:08 #79 int wndNum; // Номер подокна индикатора /// И ЭТО ТОЖЕ НЕ ИСПОЛЬЗУЕТЕ ВИДИМО ОСТАЛОСЬ ОТ ПРЕДЫДУЩЕГО ПИСАТЕЛЯ string wndName=????; // Наименование окна /// ЧТО ЭТО ????? // Удаляем графический объект void DeleteObject( string name) { ObjectDelete (name+ WindowExpertName ()); // Вы нашли окно предварительно? } // Рисуем метку void object( string name, string _text, int fontsize, color color_, int value) { string objName = name+ WindowExpertName (); ObjectCreate (objName, OBJ_LABEL , WindowFind ( WindowExpertName ()), 0 , 0 ); // То же самое ObjectSetText (objName, _text, fontsize, "Verdana" , color_); ObjectSet (objName, OBJPROP_CORNER , 1 ); ObjectSet (objName, OBJPROP_XDISTANCE , 4 ); ObjectSet (objName, OBJPROP_YDISTANCE , value); } 창 이름을 개체 이름에 바인딩하지 말고 고유한 이름으로 개체의 이름을 지정하십시오. Рита 2012.01.12 10:48 #80 FAQ : 창 이름을 개체 이름에 바인딩하지 말고 고유한 이름으로 개체의 이름을 지정하십시오. 감사합니다. 이해가 되는 것 같습니다. 이제 창의 이름을 지정하고 찾으려고 합니다. 123456789101112131415...18 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
설명 해주셔서 감사합니다.
여러 기능을 하나로 합쳐야 할 것 같습니다. 어딜가나 논리는 똑같다
-안녕하세요.
이전 Expert Advisor에서 우리는 다음과 같은 직위 공개를 사용했습니다(I.Kim의 기능).
이제 다른 어드바이저를 작성할 때 이 코드를 복사합니다.
그리고 갑자기 나는 컴파일 할 때 얻는다.
왜 오류가 나오는지 알 수 없습니다! 코드는 엄격하게 균형을 이룹니다.
뿐만 아니라! (전역 변수로 선언된) 매개변수 ti 를 제거하면 컴파일 오류가 사라집니다.
그러나 나중에 f- 및 MessageBox 실행을 구현할 수 있도록 티켓( ti )과 함께 필요합니다.
아침에는 알 수가 없습니다. 제발. 말해봐, 여기서 부정확성은 무엇인가?
OpenPosition( - 갑자기 오류가 발생하기 전에 ti= 를 추가하는 이유는 무엇입니까?
아마도 OpenPosition()은 void로 선언되지만 int여야 합니다.
int OpenPosition(....){ .... }
정수 감사합니다!
네, 바로 그 일이 일어났습니다! 이제 수정했고 모든 것이 잘 컴파일되었습니다!
안녕하세요.
Expert Advisor에서 특별한 이유 없이 갑자기 모든 틱마다 로그가 인쇄되기 시작했습니다.
2012.01.11 22:28:19 Complex_Common_01mod EURCHF,H1: ObjectCreate 함수 에 대해 알 수 없는 하위 창 번호 -1
코드에서 사용자 정의 칠면조를 호출합니다(그림 참조).
제발. 오류가 어디에서 왔는지 말해줘? 이전에는 존재하지 않았습니다. 약간의 코드 변경 - 표시 부분은 전혀 건드리지 않았습니다!
그리고 각 진드기의 로그는이 비문을 발행하기 시작했습니다 ...
ObjectCreate 함수 - 코드에서 전혀 사용하지 않습니다.
정수 감사합니다!
네, 바로 그 일이 일어났습니다! 이제 수정했고 모든 것이 잘 컴파일되었습니다!
표시기는 해당 창의 이름을 찾지만 찾지 못합니다. https://docs.mql4.com/en/customind/IndicatorShortName 참조
이것이 표시기의 결함으로 밝혀졌습니까? 고문의 잘못은 전혀 아닙니까? 이걸로 무엇을 해야 할지 잘 모르겠습니다. 나는 고문의 코드에서이 칠면조의 창을 호출하도록 요구하지 않습니다!
어렵지 않다면 부탁드립니다. 누군가이 결함을 수정하는 방법을 알려주십시오. (- ObjectCreate 함수에 대한 알 수 없는 하위 창 번호 -1 ) ?
표시기 코드는 다음과 같습니다.
창 이름을 개체 이름에 바인딩하지 말고 고유한 이름으로 개체의 이름을 지정하십시오.
감사합니다. 이해가 되는 것 같습니다. 이제 창의 이름을 지정하고 찾으려고 합니다.