초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1344 1...133713381339134013411342134313441345134613471348134913501351...1503 새 코멘트 Vitaly Muzichenko 2021.09.12 19:02 #13431 Igor Makanu # : 아니 작동하지 않을거야 프로그래밍 방식으로 호출되는 경우 매개변수를 임의로 생성할 수 있습니다. 하지만 수동으로 시작해야 하며 여전히 입력 매개변수를 편집해야 합니다. 미리 정의된 매크로 대체에 현재 무엇이 있는지 확인하려고 합니다. __COUNT___가 있고 현재 무작위로 있는 것은 무엇이며 __COUNT___가 작동하는 방식을 확인하지 않았습니다 . 정적인 것으로 밝혀졌습니다. 의미가 거의 없습니다. 작업에 사용할 무작위 __RANDOM__ 을(를) 찾았지만 값을 변경하려면 코드를 컴파일해야 합니다. 아니면 내가 뭔가를 이해하지 못합니까? #define MACRO __RANDOM__ input ulong MASlow = MACRO; // Период медленной МА 작동 중에 어떻게든 변경할 수 있습니까? __RANDOM__ Компилятор для каждого объявления __RANDOM__ подставляет в код случайное ulong -число. Fast235 2021.09.12 19:13 #13432 모든 전화에 새로운 번호가 있지 않습니까? Vitaly Muzichenko 2021.09.12 19:15 #13433 Fast235 # : 모든 전화에 새로운 번호가 있지 않습니까? 아니다 Vladislav Andruschenko 2021.09.12 19:15 #13434 Fast235 # : 모든 전화에 새로운 번호가 있지 않습니까? 컴파일러는 컴파일할 때를 의미합니다. Igor Makanu 2021.09.12 19:22 #13435 Vitaly Muzichenko # : 아니다 그렇다면 이 문제는 해결할 수 없습니다. 그리고 과제는 무엇입니까? - 당신은 그것을 다르게 공식화하려고 노력해야합니다 Alexey Viktorov 2021.09.12 19:47 #13436 Vitaly Muzichenko # : 아니다 비탈리, 왜이 모든 것이? 표시기 창이 1개 이상인 경우 창 번호를 가져와서 거기에 무언가를 넣어야 합니까? Vitaly Muzichenko 2021.09.12 19:52 #13437 Alexey Viktorov # : 비탈리, 왜이 모든 것이? 표시기 창이 1개 이상인 경우 창 번호를 가져와서 거기에 무언가를 넣어야 합니까? 네, 맞습니다. 표시기가 있는 창의 번호를 가져와야 합니다. 이렇게 하려면 버튼을 클릭하고 데이터를 가져옵니다. if (id== CHARTEVENT_OBJECT_CLICK && StringFind (sparam,( string )wndNum+ "_butt" )!=- 1 ) { Alert ( "Window number:" +( string )wndNum, " => Program name:" +prog_name, " => Short name:" +short_name); ObjectSetInteger ( 0 ,sparam, OBJPROP_STATE , false ); } mt4 작품 하나의 mt5만 - 첫 번째 설치, 복사본 무시 Vitaly Muzichenko 2021.09.12 20:10 #13438 그것은 이미 이것에 이르렀습니다. 글쎄, 이번주의 일은 어떤 식 으로든 해결되지 않았습니다 :( //+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2020, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, IgorM" #property link " https://www.mql5.com/ru/users/igorm " #property version "1.00" #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID //#property indicator_width1 1 input ulong MASlow = __COUNTER__; // Период медленной МА //+------------------------------------------------------------------+ int wndNum; string prog_name,short_name; double Label1Buffer[]; bool flag= false ; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit () { prog_name= MQLInfoString ( MQL_PROGRAM_NAME ); int q= 0 ; for ( int k= 1 ; k< ChartGetInteger ( 0 , CHART_WINDOWS_TOTAL ); k++) { for ( int e= 0 ; e< ChartGetInteger ( 0 , CHART_WINDOWS_TOTAL ); e++) { if ( ChartIndicatorName ( 0 ,k,e)==prog_name) { q++; } } } short_name= "Set (" +( string )MASlow+ ")" ; IndicatorSetString ( INDICATOR_SHORTNAME ,short_name); wndNum= ChartWindowFind (); wndNum=q; ButtonCreate( 0 ,( string )wndNum+ "_butt" , 44 , 18 , 40 , 14 , CORNER_RIGHT_LOWER , "= " +( string )wndNum+ " =" , "Alert" , "Arial" , 9 , clrBlack , C'236,233,216' , clrGray , false , false , false ); SetIndexBuffer ( 0 ,Label1Buffer); PlotIndexSetInteger ( 0 , PLOT_LINE_WIDTH ,q+ 1 ); flag= true ; Print ( "INIT SUCCEEDED: " +( string )wndNum, " => Count: " ,q); //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { ObjectsDeleteAll ( 0 ,( string )wndNum+ "_butt" ); ChartRedraw (); } //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { for ( int i = prev_calculated == 0 ? 0 : prev_calculated - 1 ; i < rates_total; i++) { Label1Buffer[i] = close[i]; } if (flag== false ) OnInit (); return (rates_total); } //+------------------------------------------------------------------+ //| OnChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) { if (id== CHARTEVENT_OBJECT_CLICK && StringFind (sparam,( string )wndNum+ "_butt" )!=- 1 ) { Alert ( "Window number:" +( string )wndNum, " => Program name:" +prog_name, " => Short name:" +short_name); ObjectSetInteger ( 0 ,sparam, OBJPROP_STATE , false ); } if (id== CHARTEVENT_CHART_CHANGE ) { ButtonCreate( 0 ,( string )wndNum+ "_butt" , 44 , 18 , 40 , 14 , CORNER_RIGHT_LOWER , "= " +( string )wndNum+ " =" , "Alert" , "Arial" , 9 , clrBlack , C'236,233,216' , clrGray , false , false , false ); OnInit (); } } //=============================================================================================== //--------------------------------------- Создает кнопку ---------------------------------------+ //=============================================================================================== void ButtonCreate( long chart_ID= 0 , string nm= "Button" , int xd= 0 , int yd= 0 , int width= 50 , int height= 18 , int cr= 0 , string text= "Button" , string tooltip= "Button" , string font= "Arial" , int font_size= 9 , color clr= clrBlack , color back_clr= C'236,233,216' , color border_clr= clrNONE , bool state= false , bool selection= true , bool selectable= true , bool bc= false ) { if ( ObjectFind (chart_ID,nm)< 0 ) { ObjectCreate (chart_ID,nm, OBJ_BUTTON ,wndNum, 0 , 0 ); ObjectSetInteger (chart_ID,nm, OBJPROP_XSIZE ,width); ObjectSetInteger (chart_ID,nm, OBJPROP_YSIZE ,height); ObjectSetInteger (chart_ID,nm, OBJPROP_CORNER ,cr); ObjectSetString (chart_ID,nm, OBJPROP_TEXT ,text); ObjectSetString (chart_ID,nm, OBJPROP_TOOLTIP ,tooltip); ObjectSetString (chart_ID,nm, OBJPROP_FONT ,font); ObjectSetInteger (chart_ID,nm, OBJPROP_FONTSIZE ,font_size); ObjectSetInteger (chart_ID,nm, OBJPROP_COLOR ,clr); ObjectSetInteger (chart_ID,nm, OBJPROP_BGCOLOR ,back_clr); ObjectSetInteger (chart_ID,nm, OBJPROP_BORDER_COLOR ,border_clr); ObjectSetInteger (chart_ID,nm, OBJPROP_BACK ,bc); ObjectSetInteger (chart_ID,nm, OBJPROP_STATE ,state); ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTABLE ,selectable); ObjectSetInteger (chart_ID,nm, OBJPROP_SELECTED ,selection); ObjectSetInteger (chart_ID,nm, OBJPROP_HIDDEN , false ); ObjectSetInteger (chart_ID,nm, OBJPROP_YDISTANCE ,yd); ObjectSetInteger (chart_ID,nm, OBJPROP_ZORDER , 10 ); ObjectSetInteger (chart_ID,nm, OBJPROP_XDISTANCE ,xd); ChartRedraw (); } } //+------------------------------------------------------------------+ Alexey Viktorov 2021.09.12 20:11 #13439 Vitaly Muzichenko # : 네, 맞습니다. 표시기가 있는 창의 번호를 가져와야 합니다. 이렇게 하려면 버튼을 클릭하고 데이터를 가져옵니다. mt4 작품 하나의 mt5만 - 첫 번째 설치, 복사본 무시 글쎄, 이것은 분명히 향상된 성능의 결과입니다 ...별로 똑똑하지 않은 사용자의 변덕으로 표시기를 100500 번 다시 계산하는 이유는 무엇입니까? 그러나 일부 기회가 보호를 받는 일이 발생했습니다. 지표의 짧은 이름에 외부 매개변수를 입력해야 할 수도 있습니다. input int MAFast = 8 ; // Период быстрой МА input string shortName = "1" ; // Префикс… string short_name = "" ; /********************************************************************\ | Custom indicator initialization function | \********************************************************************/ int OnInit () { //--- indicator buffers mapping short_name = shortName + MQLInfoString ( MQL_PROGRAM_NAME ) + "=Set (" + ( string )MASlow + "/" + ( string )MAFast + ")" ; IndicatorSetString ( INDICATOR_SHORTNAME , short_name); SetIndexBuffer ( 0 , Label1Buffer, INDICATOR_DATA ); Print ( "INIT_SUCCEEDED" ); return ( INIT_SUCCEEDED ); } /******************************************************************/ 그것이 작동하는 방식입니다. 확인했습니다. Vitaly Muzichenko 2021.09.12 20:15 #13440 Alexey Viktorov # : 글쎄, 이것은 분명히 향상된 성능의 결과입니다 ...별로 똑똑하지 않은 사용자의 변덕으로 표시기를 100500 번 다시 계산하는 이유는 무엇입니까? 그러나 일부 기회가 보호를 받는 일이 발생했습니다. 지표의 짧은 이름에 외부 매개변수를 입력해야 할 수도 있습니다. 그것이 작동하는 방식입니다. 확인했습니다. 다시 말하지만 다음 복사본을 로드할 때 접두사를 변경해야 합니까? 1...133713381339134013411342134313441345134613471348134913501351...1503 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아니 작동하지 않을거야
프로그래밍 방식으로 호출되는 경우 매개변수를 임의로 생성할 수 있습니다.
하지만 수동으로 시작해야 하며 여전히 입력 매개변수를 편집해야 합니다.
미리 정의된 매크로 대체에 현재 무엇이 있는지 확인하려고 합니다. __COUNT___가 있고 현재 무작위로 있는 것은 무엇이며 __COUNT___가 작동하는 방식을 확인하지 않았습니다 . 정적인 것으로 밝혀졌습니다. 의미가 거의 없습니다. 작업에 사용할 무작위
__RANDOM__ 을(를) 찾았지만 값을 변경하려면 코드를 컴파일해야 합니다. 아니면 내가 뭔가를 이해하지 못합니까?
작동 중에 어떻게든 변경할 수 있습니까?
__RANDOM__ Компилятор для каждого объявления __RANDOM__ подставляет в код случайное ulong -число.
모든 전화에 새로운 번호가 있지 않습니까?
아니다
모든 전화에 새로운 번호가 있지 않습니까?
아니다
그렇다면 이 문제는 해결할 수 없습니다.
그리고 과제는 무엇입니까? - 당신은 그것을 다르게 공식화하려고 노력해야합니다
아니다
비탈리, 왜이 모든 것이? 표시기 창이 1개 이상인 경우 창 번호를 가져와서 거기에 무언가를 넣어야 합니까?
네, 맞습니다.
표시기가 있는 창의 번호를 가져와야 합니다. 이렇게 하려면 버튼을 클릭하고 데이터를 가져옵니다.
mt4 작품
하나의 mt5만 - 첫 번째 설치, 복사본 무시
그것은 이미 이것에 이르렀습니다. 글쎄, 이번주의 일은 어떤 식 으로든 해결되지 않았습니다 :(
네, 맞습니다.
표시기가 있는 창의 번호를 가져와야 합니다. 이렇게 하려면 버튼을 클릭하고 데이터를 가져옵니다.
mt4 작품
하나의 mt5만 - 첫 번째 설치, 복사본 무시
글쎄, 이것은 분명히 향상된 성능의 결과입니다 ...별로 똑똑하지 않은 사용자의 변덕으로 표시기를 100500 번 다시 계산하는 이유는 무엇입니까? 그러나 일부 기회가 보호를 받는 일이 발생했습니다.
지표의 짧은 이름에 외부 매개변수를 입력해야 할 수도 있습니다.
그것이 작동하는 방식입니다. 확인했습니다.
글쎄, 이것은 분명히 향상된 성능의 결과입니다 ...별로 똑똑하지 않은 사용자의 변덕으로 표시기를 100500 번 다시 계산하는 이유는 무엇입니까? 그러나 일부 기회가 보호를 받는 일이 발생했습니다.
지표의 짧은 이름에 외부 매개변수를 입력해야 할 수도 있습니다.
그것이 작동하는 방식입니다. 확인했습니다.
다시 말하지만 다음 복사본을 로드할 때 접두사를 변경해야 합니까?