전문 고문 - 기타 질문 - 페이지 11 1...456789101112131415161718...43 새 코멘트 honest_knave 2016.12.16 14:20 #101 Max Enrik : 아래 코드는 당신이 나를 도운 후에 완벽하게 작동합니다. 감사합니다. 그리고 나는 당신이 말한대로 이름을 바꿨습니다. 잘 작동하지만 궁금한 점이 있습니다 . 내가 뭔가 잘못하고 있습니까? (그냥 걱정 된다) 코드가 작동할지 걱정하는 것은 매우 정상적입니다(실제로는 정상입니다). 종종 우리는 컴파일되지만 우리가 원하는 것을 하지 않는 코드를 보게 될 것입니다(사람의 실수 및/또는 지식 부족으로 인해). 가장 좋은 방법은 변수를 출력하고 리턴 코드를 확인 하는 습관을 들이는 것입니다. 테스트를 마치면 인쇄 문을 제거할 수 있습니다. 위의 코드 조각을 사용하여 간단한 Print("SL 값: "+sl)을 추가한 다음 전문가 로그를 확인하여 값이 예상한 값인지 확인할 수 있습니다. William Roeder 2016.12.16 16:06 #102 Max Enrik : 그냥 궁금해서요. 제가 뭔가 잘못하고 있는 건가요? { sl = Bid + points_to_change( stoploss * 10 ); } 왜 10을 곱합니까? stoploss 가 pips에 있는 경우 pips_to_change 를 통해 변환하여 4자리 브로커에서 작동하도록 합니다. Max Enrik 2016.12.17 07:59 #103 Marco vd Heijden : 설계된대로 작동하면 아무 잘못도하지 않는 것이 간단합니다. 그렇지 않으면 단순히 작동하지 않습니다. #확인 표시 - 닫힘 응! 나는 이 비트맵 레이블 이 이미 나에게 오랜 시간이 걸렸다는 것을 인정합니다. 드디어 내가 원하는 것을 얻었다... 물론, 거대한 사람, 당신의 도움에 감사드립니다. 아래 코드와 같이 내 문제를 해결합니다. void ordersell(){ // Sell set Stop Loss with bitmap label // when bitmap label shows - ON if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == true ) { sl = Bid + points_to_change( stoploss * 10 ); Print ( " | TRUE : Active | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl ); } // when bitmap label shows - OFF if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == false ) { sl = 0 ; Print ( " | FALSE : Inactive | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl ); } // call your stop loss 'sl' ticket = OrderSend ( ..., sl, ... ); // sounds if ( ticket > 0 ) { PlaySound ( "ok.wav" ); } else { PlaySound ( "timeout.wav" ); } return ;} expert advisor - miscellaneous I need a HELP First Script, I need Max Enrik 2016.12.17 08:09 #104 honest_knave : 가장 좋은 방법은 변수를 출력하고 리턴 코드를 확인하는 습관을 들이는 것입니다. 테스트를 마치면 인쇄 문을 제거할 수 있습니다. 위의 코드 조각을 사용하여 간단한 Print("SL 값: "+sl)을 추가한 다음 전문가 로그를 확인하여 값이 예상한 값인지 확인할 수 있습니다. 이미 사용하고 있지만 #Checkmark 문제를 확인 하면 더 명확하게 이해하기를 바랍니다. 어쨌든 시간 내주셔서 감사합니다. Max Enrik 2016.12.17 08:49 #105 whroeder1 : 왜 10을 곱합니까? stoploss 가 pips에 있는 경우 pips_to_change 를 통해 변환하여 4자리 브로커에서 작동하도록 합니다. 오! 예, 좋은 질문입니다. 저는 이미 변했습니다. 관심 을 가져주셔서 감사합니다. Max Enrik 2016.12.17 11:05 #106 #손절매 / 이익실현 - 마감 더 명확하게 의견을 주셔서 감사합니다 Marco. 당신에게 최선을 다합니다. @Marco vd Heijden 에게 특별한 감사 Max Enrik 2016.12.18 11:38 #107 #Ctrl + 마우스 버튼 - 열기 나는 그것에 대한 좋은 문서를 어떻게 찾을 수 있는지 몇 시간을 보냈고 그것에 대한 좋은 정보와 문서를 얻을 수 없습니다. Lot 크기를 0.1 로 늘리려면 ' 왼쪽 마우스 + Ctrl '을 클릭하면 됩니다. ( 일반적으로 0.01 증가 ). 이에 대한 예제가 포함된 문서 및 기사를 찾고 싶습니다. 미리 감사드립니다. honest_knave 2016.12.18 13:01 #108 Max Enrik : #Ctrl + 마우스 버튼 - 열기 나는 그것에 대한 좋은 문서를 어떻게 찾을 수 있는지 몇 시간을 보냈고 그것에 대한 좋은 정보와 문서를 얻을 수 없습니다. Lot 크기를 0.1 로 늘리려면 ' 왼쪽 마우스 + Ctrl '을 클릭하면 됩니다. ( 일반적으로 0.01 증가 ). 이에 대한 예제가 포함된 문서 및 기사를 찾고 싶습니다. 미리 감사드립니다. 키 조합을 잡는 쉬운 방법을 모르겠습니다. 0.01이 아닌 0.1만큼 증가시키려면 클릭할 두 번째 버튼이 있는 것이 좋습니다. 그럼에도 불구하고 다음을 시도할 수 있습니다. 마지막 이벤트가 키 입력 CTRL인지 확인하십시오 . 그렇다면 이 이벤트가 마우스 클릭인지 확인하십시오. 그러나 이 접근 방식에는 몇 가지 문제가 있습니다. 1. 키 입력과 마우스 클릭 사이에 다른 차트 이벤트가 발생하면 실패합니다. 2. 마우스 클릭과 CTRL 해제 사이의 지연으로 인해 약간의 오버런이 발생합니다. 이에 대한 해결 방법은 자체 문제를 소개합니다. 아마도 다른 사람들이 더 나은 아이디어를 가지고 있을 것입니다. #define CTRL 17 void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) { static bool wasCTRL= false ; if (wasCTRL && id== CHARTEVENT_CLICK ) Print ( "CTRL+CLICK detected" ); wasCTRL=(id== CHARTEVENT_KEYDOWN && lparam==CTRL); } expert advisor - miscellaneous OnChartEvent() ... does not Strg + Mouseclick refining Marco vd Heijden 2016.12.18 19:08 #109 //+------------------------------------------------------------------+//| keydown.mq4 |//| Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp."#property link "https://www.mql5.com"#property version "1.00"#property strictbool ctrl_click;//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+int OnInit() {//--- create timer EventSetTimer(60);//--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+void OnDeinit(const int reason) {//--- destroy timer EventKillTimer(); }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+void OnTick() {//--- }//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+void OnTimer() {//--- }//+------------------------------------------------------------------+void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_CLICK) { //Print("CLICK"); ctrl_click=1; } if(id==CHARTEVENT_KEYDOWN) { //Print(lparam);// print to identify keycode if(lparam==17) // ctrl key { if(ctrl_click==1)// if mouse click { //Do Something when CTRL (keycode 17) is pressed Print("CTRL+CLICK"); ctrl_click=0; // reset } } ctrl_click=0; // reset if not ctrl } }//+------------------------------------------------------------------+ expert advisor - miscellaneous Questions from Beginners MQL4 초보자의 질문 MQL4 MT4 Marco vd Heijden 2016.12.18 19:32 #110 그럴 것 같아요. 약간 다릅니다. 1...456789101112131415161718...43 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아래 코드는 당신이 나를 도운 후에 완벽하게 작동합니다. 감사합니다.
그리고 나는 당신이 말한대로 이름을 바꿨습니다. 잘 작동하지만 궁금한 점이 있습니다 . 내가 뭔가 잘못하고 있습니까?
(그냥 걱정 된다)
코드가 작동할지 걱정하는 것은 매우 정상적입니다(실제로는 정상입니다). 종종 우리는 컴파일되지만 우리가 원하는 것을 하지 않는 코드를 보게 될 것입니다(사람의 실수 및/또는 지식 부족으로 인해).
가장 좋은 방법은 변수를 출력하고 리턴 코드를 확인 하는 습관을 들이는 것입니다. 테스트를 마치면 인쇄 문을 제거할 수 있습니다.
위의 코드 조각을 사용하여 간단한 Print("SL 값: "+sl)을 추가한 다음 전문가 로그를 확인하여 값이 예상한 값인지 확인할 수 있습니다.
설계된대로 작동하면 아무 잘못도하지 않는 것이 간단합니다. 그렇지 않으면 단순히 작동하지 않습니다.
#확인 표시 - 닫힘
응! 나는 이 비트맵 레이블 이 이미 나에게 오랜 시간이 걸렸다는 것을 인정합니다. 드디어 내가 원하는 것을 얻었다...
물론, 거대한 사람, 당신의 도움에 감사드립니다.
아래 코드와 같이 내 문제를 해결합니다.
{
// Sell set Stop Loss with bitmap label
// when bitmap label shows - ON
if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == true )
{
sl = Bid + points_to_change( stoploss * 10 );
Print ( " | TRUE : Active | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl );
}
// when bitmap label shows - OFF
if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == false )
{
sl = 0 ;
Print ( " | FALSE : Inactive | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl );
}
// call your stop loss 'sl'
ticket = OrderSend ( ..., sl, ... );
// sounds
if ( ticket > 0 )
{ PlaySound ( "ok.wav" ); } else
{ PlaySound ( "timeout.wav" ); }
return ;
}
가장 좋은 방법은 변수를 출력하고 리턴 코드를 확인하는 습관을 들이는 것입니다. 테스트를 마치면 인쇄 문을 제거할 수 있습니다.
위의 코드 조각을 사용하여 간단한 Print("SL 값: "+sl)을 추가한 다음 전문가 로그를 확인하여 값이 예상한 값인지 확인할 수 있습니다.
이미 사용하고 있지만 #Checkmark 문제를 확인 하면 더 명확하게 이해하기를 바랍니다.
어쨌든 시간 내주셔서 감사합니다.
왜 10을 곱합니까? stoploss 가 pips에 있는 경우 pips_to_change 를 통해 변환하여 4자리 브로커에서 작동하도록 합니다.
오! 예, 좋은 질문입니다. 저는 이미 변했습니다. 관심 을 가져주셔서 감사합니다.
#손절매 / 이익실현 - 마감
더 명확하게 의견을 주셔서 감사합니다 Marco.
@Marco vd Heijden 에게 특별한 감사당신에게 최선을 다합니다.
#Ctrl + 마우스 버튼 - 열기
나는 그것에 대한 좋은 문서를 어떻게 찾을 수 있는지 몇 시간을 보냈고 그것에 대한 좋은 정보와 문서를 얻을 수 없습니다.
Lot 크기를 0.1 로 늘리려면 ' 왼쪽 마우스 + Ctrl '을 클릭하면 됩니다. ( 일반적으로 0.01 증가 ).
이에 대한 예제가 포함된 문서 및 기사를 찾고 싶습니다.
미리 감사드립니다.
#Ctrl + 마우스 버튼 - 열기
나는 그것에 대한 좋은 문서를 어떻게 찾을 수 있는지 몇 시간을 보냈고 그것에 대한 좋은 정보와 문서를 얻을 수 없습니다.
Lot 크기를 0.1 로 늘리려면 ' 왼쪽 마우스 + Ctrl '을 클릭하면 됩니다. ( 일반적으로 0.01 증가 ).
이에 대한 예제가 포함된 문서 및 기사를 찾고 싶습니다.
미리 감사드립니다.
키 조합을 잡는 쉬운 방법을 모르겠습니다. 0.01이 아닌 0.1만큼 증가시키려면 클릭할 두 번째 버튼이 있는 것이 좋습니다.
그럼에도 불구하고 다음을 시도할 수 있습니다.
마지막 이벤트가 키 입력 CTRL인지 확인하십시오 .
그렇다면 이 이벤트가 마우스 클릭인지 확인하십시오.
그러나 이 접근 방식에는 몇 가지 문제가 있습니다.
1. 키 입력과 마우스 클릭 사이에 다른 차트 이벤트가 발생하면 실패합니다.
2. 마우스 클릭과 CTRL 해제 사이의 지연으로 인해 약간의 오버런이 발생합니다. 이에 대한 해결 방법은 자체 문제를 소개합니다.
아마도 다른 사람들이 더 나은 아이디어를 가지고 있을 것입니다.
const long &lparam,
const double &dparam,
const string &sparam)
{
static bool wasCTRL= false ;
if (wasCTRL && id== CHARTEVENT_CLICK ) Print ( "CTRL+CLICK detected" );
wasCTRL=(id== CHARTEVENT_KEYDOWN && lparam==CTRL);
}
//| keydown.mq4 |
//| Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
bool ctrl_click;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(60);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
}
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
//Print("CLICK");
ctrl_click=1;
}
if(id==CHARTEVENT_KEYDOWN)
{
//Print(lparam);// print to identify keycode
if(lparam==17) // ctrl key
{
if(ctrl_click==1)// if mouse click
{
//Do Something when CTRL (keycode 17) is pressed
Print("CTRL+CLICK");
ctrl_click=0; // reset
}
}
ctrl_click=0; // reset if not ctrl
}
}
//+------------------------------------------------------------------+
그럴 것 같아요.
약간 다릅니다.