MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 681 1...674675676677678679680681682683684685686687688...1953 새 코멘트 Ghabo 2018.10.29 23:22 #6801 Igor Makanu : 아마도 다음과 같이 판매될 것입니다. 이익= NormalizeDouble ((OrderOpenPrice()-Ask)* MarketInfo (_Symbol, MODE_TICKVALUE )*lot/ Point , 2 ); 입찰 수로 구매, 즉. ( 입찰 - OrderOpenPrice()) Take_Profit =100 pp lot =0.1 T\P에 의해 포지션이 마감될 때 오픈 포지션의 이익은 통화로 얼마입니까? profit= NormalizeDouble (( OrderOpenPrice ()-Тейк_Профит*Point)* MarketInfo ( _Symbol , MODE_TICKVALUE )*lot/ Point , 2 ); 그런 식으로 작동하지 않습니다. Ghabo 2018.10.29 23:27 #6802 Vitaly Muzichenko : 당신은 운영해야 합니다: 부지 -> 돈 -> 거리, 음, 틱 비용 돈, 알아야 할 것) Igor Makanu 2018.10.30 04:38 #6803 Vitaly Muzichenko : 솔루션은 커미션과 스왑을 고려하지 않습니다. 이익과 같은 점과 비용 - 손실. 커미션과 스왑이 있는 경우 OrderProfit()+ OrderComission()+OrderSwap() 공식이 마음에 들지 않습니다. 도움말에 따르면 커미션은 포인트 또는 예금 통화 로 표시될 수 있으며 이 공식은 이를 고려하지 않으며 테스트할 때 득보다 실이 많을 수 있지만 이는 취향의 문제입니다. 가보 : Take_Profit =100 pp lot =0.1 T\P에 의해 포지션이 마감될 때 오픈 포지션의 이익은 통화로 얼마입니까? 그런 식으로 작동하지 않습니다. 수학이 당신의 강점이 아닙니까? ;) 그리고 다음과 같이: 이익=NormalizeDouble(( Take_Profit *Point )*MarketInfo(_Symbol,MODE_TICKVALUE)*lot/Point,2); 단축하면 된다. 이익=NormalizeDouble(lot * TakeProfit * MarketInfo(_Symbol,MODE_TICKVALUE),2); Artyom Trishkin 2018.10.30 04:45 #6804 Vitaly Muzichenko : 이것은 계산에서 OrderProfit() 을 사용해야 함을 의미합니다. 이익실현이 트리거될 때 20 USD의 이익을 얻을 수 있도록 포지션을 개설 하기 위해 주문을 보내기 전에 미래 포지션의 로트를 계산하는 방법은 무엇입니까? OrderProfit()은 여기에서 도움이 되지 않습니다. 아직 포지션이 없습니다. 또는 다른 말로 하자면: 0.1로 많이 오픈할 때 20 USD의 이익을 얻으려면 퓨처 포지션의 테이크 이익은 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다. 그리고 당신은 또한 이것을 할 수 있습니다: 많은 0.1로 열 때 자유 마진의 3% 이하의 손실을 내기 위해 미래 포지션의 손절매는 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다. upd: 모든 계산은 수수료와 스왑을 모른 채 대략적인 것입니다. 센트 또는 포인트의 정확도가 필요한 경우 이미 "적절한" 스톱 오더를 조정해야 합니다. 가격 패턴(가틀리, 나비, 박쥐,...) 트레이딩의 머신러닝: 이론, 모델, 터미네이터 v2.0 Vitaly Muzichenko 2018.10.30 04:50 #6805 Artyom Trishkin : 이익실현이 트리거될 때 20 USD의 이익을 얻을 수 있도록 포지션을 개설 하기 위해 주문을 보내기 전에 미래 포지션의 로트를 계산하는 방법은 무엇입니까? OrderProfit()은 여기에서 도움이 되지 않습니다. 아직 포지션이 없습니다. 또는 다른 말로 하자면: 0.1로 많이 오픈할 때 20 USD의 이익을 얻으려면 퓨처 포지션의 테이크 이익은 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다. 방금 작성하고 열기 전에 계산해야한다는 것을 깨닫고 즉시 메시지를 삭제했습니다. 얼마나 잘 대답했습니까? 한번은 이걸 쓰고 커미션으로 1랏당 금액을 입력파라미터에 입력했습니다. Dmitry Belov 2018.10.31 06:03 #6806 안녕하세요 이해가 안되네요 도와주세요 이 코드에서 잘못된 것은 무엇입니까? 댓글에 평균값을 표시했는데 틱마다 증가하나요? 돕다:-)))) for (shift = 0 ; shift <= Bars - 1 ; shift++) { zz = iCustom ( NULL , 0 , "ZigZag" , ExtDepth, ExtDeviation, ExtBackstep, 0 , shift); if (zz > 0.0 ) { HZZ[ww]=zz; ww++; } } for (ww= 0 ;ww<=nn;ww++){ if (HZZ[ww]>HZZ[ww+ 1 ]){SredRazmax += HZZ[ww];} if (HZZ[ww]<HZZ[ww+ 1 ]){SredRazmin += HZZ[ww+ 1 ];} Comment ( "Средний размах = " , (SredRazmax-SredRazmin)/nn, "," ,HZZ[ 0 ], "," ,HZZ[ 1 ], "," ,HZZ[ 2 ], "," ,HZZ[ 3 ], "," ,HZZ[ 4 ]); Igor Makanu 2018.10.31 06:10 #6807 Dmitry Belov : 틱마다 증가합니까? 돕다:-)))) 그것은 당신이 제시한 코드마다 계산 하고 SredRazmax 및 SredRazmin 변수를 초기화하지 않는다는 것을 의미합니다 사용하기 전에 변수를 초기화하는 것은 좋은 습관입니다. 이것이 대학에서 가르치는 방식이며 버그를 검색할 때 시간을 단축합니다 ;) Oleg Remizov 2018.10.31 19:52 #6808 동료 여러분, 이 코드가 실시간으로 올바르게 실행되는 동안 전략 테스터에서 실행을 거부하는 이유는 무엇입니까? 우리는 OnChartEvent() 함수 에 대해 구체적으로 이야기하고 있습니다. 테스터의 시각화 모드에서는 버튼을 클릭해도 실행되지 않습니다. input double lot= 0.1 ; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { ButtonCreate( "ButtonBuy" , 100 , 100 , 200 , 40 , "Buy" , 15 , clrBlue ); ButtonCreate( "ButtonSell" , 100 , 200 , 200 , 40 , "Sell" , 15 , clrRed ); return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) { long cid= ChartID (); if (id== CHARTEVENT_OBJECT_CLICK && sparam== "ButtonBuy" ) { if ( OrderSend ( _Symbol , OP_BUY ,lot, Ask , 200 , 0 , 0 , NULL , 0 , 0 , clrBlue )==- 1 ) Print ( "Error: " , GetLastError ()); ObjectSetInteger (cid, "ButtonBuy" , OBJPROP_STATE , false ); } if (id== CHARTEVENT_OBJECT_CLICK && sparam== "ButtonSell" ) { if ( OrderSend ( _Symbol , OP_SELL ,lot, Bid , 200 , 0 , 0 , NULL , 0 , 0 , clrRed )==- 1 ) Print ( "Error: " , GetLastError ()); ObjectSetInteger (cid, "ButtonSell" , OBJPROP_STATE , false ); } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| ButtonCreate | //+------------------------------------------------------------------+ void ButtonCreate( string name, int x, int y, int width, int height, string text, int font_size, color back_clr) { long cid= ChartID (); int subWind= 0 ; ENUM_BASE_CORNER corner= CORNER_LEFT_UPPER ; string font= "Cambria" ; color text_clr= clrBlack ; color border_clr= clrBlack ; bool state= false ; bool back= false ; bool selectable= false ; bool selected= false ; bool hidden= true ; long zorder= 0 ; if ( ObjectFind (cid,name)==- 1 ) { ObjectCreate (cid,name, OBJ_BUTTON ,subWind, 0 , 0 ); ObjectSetInteger (cid,name, OBJPROP_XDISTANCE ,x); ObjectSetInteger (cid,name, OBJPROP_YDISTANCE ,y); ObjectSetInteger (cid,name, OBJPROP_XSIZE ,width); ObjectSetInteger (cid,name, OBJPROP_YSIZE ,height); ObjectSetInteger (cid,name, OBJPROP_CORNER ,corner); ObjectSetString (cid,name, OBJPROP_TEXT ,text); ObjectSetString (cid,name, OBJPROP_FONT ,font); ObjectSetInteger (cid,name, OBJPROP_FONTSIZE ,font_size); ObjectSetInteger (cid,name, OBJPROP_COLOR ,text_clr); ObjectSetInteger (cid,name, OBJPROP_BGCOLOR ,back_clr); ObjectSetInteger (cid,name, OBJPROP_BORDER_COLOR ,border_clr); ObjectSetInteger (cid,name, OBJPROP_BACK ,back); ObjectSetInteger (cid,name, OBJPROP_STATE ,state); ObjectSetInteger (cid,name, OBJPROP_SELECTABLE ,selectable); ObjectSetInteger (cid,name, OBJPROP_SELECTED ,selected); ObjectSetInteger (cid,name, OBJPROP_HIDDEN ,hidden); ObjectSetInteger (cid,name, OBJPROP_ZORDER ,zorder); } } //+------------------------------------------------------------------+ Artyom Trishkin 2018.10.31 19:59 #6809 Oleg Remizov : 동료 여러분, 이 코드가 실시간으로 올바르게 실행되는 동안 전략 테스터에서 실행을 거부하는 이유는 무엇입니까? 우리는 OnChartEvent() 함수 에 대해 구체적으로 이야기하고 있습니다. 테스터의 시각화 모드에서는 버튼을 클릭해도 실행되지 않습니다. MT4에서는 OnChartEvent()가 테스터에서 작동하지 않기 때문입니다. 테스터에서 버튼 상태 플래그를 확인하십시오. Oleg Remizov 2018.10.31 20:09 #6810 Artyom Trishkin : MT4에서는 OnChartEvent()가 테스터에서 작동하지 않기 때문입니다. 테스터에서 버튼 상태 플래그를 확인하십시오. 글쎄, 고마워! 그런 의혹이 있었는데 도움말에서 OnChartEvent() 가 테스터에서 작동하지 않는다는 정보를 찾지 못했습니다. 1...674675676677678679680681682683684685686687688...1953 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아마도 다음과 같이 판매될 것입니다.
이익= NormalizeDouble ((OrderOpenPrice()-Ask)* MarketInfo (_Symbol, MODE_TICKVALUE )*lot/ Point , 2 );
입찰 수로 구매, 즉. ( 입찰 - OrderOpenPrice())
Take_Profit =100 pp lot =0.1 T\P에 의해 포지션이 마감될 때 오픈 포지션의 이익은 통화로 얼마입니까?
그런 식으로 작동하지 않습니다.
당신은 운영해야 합니다: 부지 -> 돈 -> 거리, 음, 틱 비용
돈, 알아야 할 것)
솔루션은 커미션과 스왑을 고려하지 않습니다. 이익과 같은 점과 비용 - 손실.
커미션과 스왑이 있는 경우 OrderProfit()+ OrderComission()+OrderSwap() 공식이 마음에 들지 않습니다.
도움말에 따르면 커미션은 포인트 또는 예금 통화 로 표시될 수 있으며 이 공식은 이를 고려하지 않으며 테스트할 때 득보다 실이 많을 수 있지만 이는 취향의 문제입니다.
Take_Profit =100 pp lot =0.1 T\P에 의해 포지션이 마감될 때 오픈 포지션의 이익은 통화로 얼마입니까?
그런 식으로 작동하지 않습니다.
수학이 당신의 강점이 아닙니까? ;)
그리고 다음과 같이:
이익=NormalizeDouble(( Take_Profit *Point )*MarketInfo(_Symbol,MODE_TICKVALUE)*lot/Point,2);
단축하면 된다.
이익=NormalizeDouble(lot * TakeProfit * MarketInfo(_Symbol,MODE_TICKVALUE),2);
이것은 계산에서 OrderProfit() 을 사용해야 함을 의미합니다.
이익실현이 트리거될 때 20 USD의 이익을 얻을 수 있도록 포지션을 개설 하기 위해 주문을 보내기 전에 미래 포지션의 로트를 계산하는 방법은 무엇입니까? OrderProfit()은 여기에서 도움이 되지 않습니다. 아직 포지션이 없습니다.
또는 다른 말로 하자면: 0.1로 많이 오픈할 때 20 USD의 이익을 얻으려면 퓨처 포지션의 테이크 이익은 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다.
그리고 당신은 또한 이것을 할 수 있습니다: 많은 0.1로 열 때 자유 마진의 3% 이하의 손실을 내기 위해 미래 포지션의 손절매는 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다.
upd: 모든 계산은 수수료와 스왑을 모른 채 대략적인 것입니다. 센트 또는 포인트의 정확도가 필요한 경우 이미 "적절한" 스톱 오더를 조정해야 합니다.
이익실현이 트리거될 때 20 USD의 이익을 얻을 수 있도록 포지션을 개설 하기 위해 주문을 보내기 전에 미래 포지션의 로트를 계산하는 방법은 무엇입니까? OrderProfit()은 여기에서 도움이 되지 않습니다. 아직 포지션이 없습니다.
또는 다른 말로 하자면: 0.1로 많이 오픈할 때 20 USD의 이익을 얻으려면 퓨처 포지션의 테이크 이익은 얼마여야 합니까? 그리고 여기에서 OrderProfit()은 같은 이유로 도움이 되지 않습니다.
방금 작성하고 열기 전에 계산해야한다는 것을 깨닫고 즉시 메시지를 삭제했습니다. 얼마나 잘 대답했습니까?
한번은 이걸 쓰고 커미션으로 1랏당 금액을 입력파라미터에 입력했습니다.
틱마다 증가합니까? 돕다:-))))
그것은 당신이 제시한 코드마다 계산 하고 SredRazmax 및 SredRazmin 변수를 초기화하지 않는다는 것을 의미합니다
사용하기 전에 변수를 초기화하는 것은 좋은 습관입니다. 이것이 대학에서 가르치는 방식이며 버그를 검색할 때 시간을 단축합니다 ;)
동료 여러분, 이 코드가 실시간으로 올바르게 실행되는 동안 전략 테스터에서 실행을 거부하는 이유는 무엇입니까? 우리는 OnChartEvent() 함수 에 대해 구체적으로 이야기하고 있습니다. 테스터의 시각화 모드에서는 버튼을 클릭해도 실행되지 않습니다.
동료 여러분, 이 코드가 실시간으로 올바르게 실행되는 동안 전략 테스터에서 실행을 거부하는 이유는 무엇입니까? 우리는 OnChartEvent() 함수 에 대해 구체적으로 이야기하고 있습니다. 테스터의 시각화 모드에서는 버튼을 클릭해도 실행되지 않습니다.
MT4에서는 OnChartEvent()가 테스터에서 작동하지 않기 때문입니다. 테스터에서 버튼 상태 플래그를 확인하십시오.
글쎄, 고마워! 그런 의혹이 있었는데 도움말에서 OnChartEvent() 가 테스터에서 작동하지 않는다는 정보를 찾지 못했습니다.