어드바이저를 무작위로 모으는 방법 - 페이지 34 1...272829303132333435363738394041...63 새 코멘트 Alexsandr San 2019.11.06 20:29 #331 위험을 올바르게 처방하는 방법을 알아 냈습니다. #define Magic_Number 0 //+------------------------------------------------------------------+ //| Enum Lor or Risk | //+------------------------------------------------------------------+ enum ENUM_LOT_OR_RISK { lots= 0 , // Constant lot risk= 1 , // Risk in percent }; //+------------------------------------------------------------------+ input double MaximumRisk = 0.01 ; // Maximum Risk in percentage input double DecreaseFactor = 3 ; // Descrease factor input ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk //+------------------------------------------------------------------+ //| Calculate optimal lot size | //+------------------------------------------------------------------+ double TradeSizeOptimized( void ) { double price= 0.0 ; double margin= 0.0 ; //--- select lot size if (! SymbolInfoDouble ( _Symbol , SYMBOL_ASK ,price)) return ( 0.0 ); if (! OrderCalcMargin ( ORDER_TYPE_BUY , _Symbol , 1.0 ,price,margin)) return ( 0.0 ); if (margin<= 0.0 ) return ( 0.0 ); double lot= 0 ; //--- switch (InpLotOrRisk) { case lots: lot=MaximumRisk; break ; case risk: lot= NormalizeDouble ( AccountInfoDouble ( ACCOUNT_MARGIN_FREE )*MaximumRisk/margin, 2 ); default : break ; } //--- calculate number of losses orders without a break if (DecreaseFactor> 0 ) { //--- select history for access HistorySelect ( 0 , TimeCurrent ()); //--- int orders= HistoryDealsTotal (); // total history deals int losses= 0 ; // number of losses orders without a break for ( int i=orders- 1 ; i>= 0 ; i--) { ulong ticket= HistoryDealGetTicket (i); if (ticket== 0 ) { Print ( "HistoryDealGetTicket failed, no trade history" ); break ; } //--- check symbol if ( HistoryDealGetString (ticket, DEAL_SYMBOL )!= _Symbol ) continue ; //--- check Expert Magic number if ( HistoryDealGetInteger (ticket, DEAL_MAGIC )!=Magic_Number) continue ; //--- check profit double profit= HistoryDealGetDouble (ticket, DEAL_PROFIT ); if (profit> 0.0 ) break ; if (profit< 0.0 ) losses++; } //--- if (losses> 1 ) lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 1 ); } //--- normalize and check limits double stepvol= SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ); lot=stepvol* NormalizeDouble (lot/stepvol, 0 ); double minvol= SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ); if (lot<minvol) lot=minvol; double maxvol= SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MAX ); if (lot>maxvol) lot=maxvol; //--- return trading volume return (lot); } //+------------------------------------------------------------------+ 여기서 lot - TradeSizeOptimized( ) 삽입 Expert에서 수정해야 합니다. 그렇지 않으면 바로 거기에 있지 않습니다. Alexsandr San 2019.11.06 21:37 #332 이름 변경 - 전문가가 완료되었습니다. 모든 버그가 수정되었습니다. 제목 < 말의 움직임 ><말의 움직임> 파일: Horse_move.mq5 190 kb Alexsandr San 2019.11.07 14:15 #333 알렉산드르 클라파튜크 : 이전 Expert에 수평선 에 대한 두 가지 방법이 추가되었습니다. 가능성 1: 라인 1은 주어진 거리에서 라인 4를 열 것이고, 라인 2 는 주어진 거리에서 라인 3을 열 것 입니다. 가능성 2: 라인 7은 주어진 거리에서 라인 10을 열고 가격을 따르고 가격이 에 닿으면 명령이 트리거됩니다. 라인 8은 주어진 거리에서 라인 9를 열 것입니다. - 7 및 10과 동일한 작업 #속성 버전 "1.01" 또 다른 가능성이 있었습니다. 1라인은 4와 9가 열릴 것이고, 2라인 은 3과 10이 열릴 것입니다. 7행은 10과 3을 엽니다. 8번 라인은 9번과 4번 을 엽니다. input string t3= "------ Obj:Name 1-2-3-4 ------" ; // Имя Объекта input string InpObjUpNameZ = "TOP 1" ; // Obj: TOP (Name Obj) ВВЕРХУ 1 input string InpObjDownNameZ = "LOWER 2" ; // Obj: LOWER (Name Obj) ВНИЗУ 2 input int Step = 5 ; // Obj: Шаг сетки, пунктов(0 = false) input string InpObjDownName0 = "TOP 3" ; // Obj: TOP (Name Obj) ВВЕРХУ 3 input ENUM_TRADE_COMMAND InpTradeCommand=open_sell; // Obj: command: input string InpObjUpName0 = "LOWER 4" ; // Obj: LOWER (Name Obj) ВНИЗУ 4 input ENUM_TRADE_COMMAND InpTradeCommand0=open_buy; // Obj: command: input string t5= "- 2_Obj:Trailing Line 7-8-9-10 --- " ; // Trailing Obj:Line input string InpObjUpNameZx = "TOP 7" ; // Obj: TOP (Name Obj) ВВЕРХУ 7 input string InpObjDownNameZx = "LOWER 8" ; // Obj: LOWER (Name Obj) ВНИЗУ 8 input int StepZx = 5 ; // Obj: Шаг сетки, пунктов(0 = false) input string InpObjUpNameX = "TOP 9" ; // Obj: TOP (Horizontal Line) ВВЕРХУ 9 input ENUM_TRADE_COMMAND InpTradeCommandX=open_buy; // Obj: command: input string InpObjDownNameX = "LOWER 10" ; // Obj: LOWER (Horizontal Line) ВНИЗУ 10 input ENUM_TRADE_COMMAND InpTradeCommand0X=open_sell; // Obj: command: input ushort InpObjTrailingStopX = 5 ; // Obj: Trailing Stop (distance from price to object, in pips) input ushort InpObjTrailingStepX = 5 ; // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips) 위치가 반대로 열리고 설정 Obj: 명령 을 건드리지 않도록 합니다. 반전이 있다 input string t6= "------ Obj: Revers Buy and Sell --" ; // Obj: Revers Buy and Sell input bool ObjRevers = false ; // Obj: Revers 파일: Horse_move.mq5 190 kb 2.mq5 17 kb Alexsandr San 2019.11.07 14:33 #334 Aleksandr Klapatyuk : #속성 버전 "1.01" 또 다른 가능성이 있었습니다. 1라인은 4와 9가 열릴 것이고, 2라인 은 3과 10이 열릴 것입니다. 7행은 10과 3을 엽니다. 8번 라인은 9번과 4번 을 엽니다. 위치가 반대로 열리고 설정 Obj: 명령 을 건드리지 않도록 합니다. 반전이 있다 이제 테스트를 시작했습니다. 월말까지는 만지지 않을 것입니다. 어떻게 되는지 궁금합니다. -많은, 위험에 처해 -그 자신이 어떻게 든 계산합니다. Alexsandr San 2019.11.07 15:02 #335 별로! 느리지만 증가하는 Alexsandr San 2019.11.07 19:55 #336 예! 그는 바로 앞이다 Roman Vashchilin 2019.11.07 23:15 #337 Aleksandr Klapatyuk : 이름 변경 - 전문가가 완료되었습니다. 모든 버그가 수정되었습니다. 제목 < 말의 움직임 ><말의 움직임> 흥미로운 고문. Alexsandr San 2019.11.08 04:21 #338 입력 설정에서 설정 이중 TargetProfit = 30000.00 ; // 목표 이익 아마도 충분하지 않을 것입니다. 더 필요했습니다. 이제 새 진입점을 기다리고 TargetProfit = 35000.00 대상을 설정해야 합니다 . // 목표 이익 //+------------------------------------------------------------------+ input string t0= "------ Parameters --------" ; // Настройка Эксперта input string Template = "ADX" ; // Имя шаблона(without '.tpl') input datetime HoursFrom = D'1970.01.01' ; // Время старта Эксперта input datetime HoursTo = D'2030.12.31' ; // Время закрытия всех позиций input double TargetProfit = 900000.00 ; // Целевая прибыль input uint maxLimits = 1 ; // Кол-во Позиции Открыть в одну сторону input double MaximumRisk = 0.01 ; // Maximum Risk in percentage input double DecreaseFactor = 3 ; // Descrease factor input ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk 표시기 피벗 라인 timezone.mq5에서 R2 -down S2-up 위치를 엽니다. 표시기는 삭제할 수 없습니다. 해당 행은 다음날 업데이트됩니다. 표시기가 아래에 있습니다. 이제 표시기 https://www.mql5.com/ru/code/1114 에 대한 링크를 사이트에서 찾을 것입니다. 파일: pivot_lines_timezone.mq5 22 kb Alexsandr San 2019.11.08 04:31 #339 Aleksandr Klapatyuk : 입력 설정에서 설정 이중 TargetProfit = 30000.00 ; // 목표 이익 아마도 충분하지 않을 것입니다. 더 필요했습니다. 이제 새 진입점을 기다리고 TargetProfit = 35000.00 대상을 설정해야 합니다 . // 목표 이익 표시기 피벗 라인 timezone.mq5에서 R2 -down S2-up 위치를 엽니다. 표시기는 삭제할 수 없습니다. 해당 행은 다음날 업데이트됩니다. 표시기가 아래에 있습니다. 이제 표시기 https://www.mql5.com/ru/code/1114 에 대한 링크를 사이트에서 찾을 것입니다. 이것은 옵션 중 하나입니다. 그러나 백만 가지 옵션이 있습니다 로트에 대해 말하는 것을 잊었습니다 - 위험 입력 으로 설정 ENUM_LOT_OR_RISK InpLotOrRisk = lot; // 자금 관리: Lot OR 위험 (.log의 전문가 정보) 경고 https://www.mql5.com/ru/docs/event_handlers/ondeinit Документация по MQL5: Обработка событий / OnDeinit www.mql5.com //| Expert initialization function | //| Expert deinitialization function | //| Возвращает текстовое описания причины деинициализации | 파일: 20191107.log 272 kb Alexsandr San 2019.11.08 10:12 #340 #속성 버전 "1.02" 버튼에 대한 다른 방법을 찾았습니다. //+------------------------------------------------------------------+ //| Enum ENUM_BUTTON | //+------------------------------------------------------------------+ enum ENUM_BUTTON { Button0= 0 , // ВЫКЛ Button1= 1 , // ВКЛ Button2= 2 , // ВКЛ: AVGiS }; //+------------------------------------------------------------------+ 여기에서 선택 input string t9= "------ Button: AVGiS -----" ; // AVGiS (Или обычный режим Buy/Sell) input ENUM_BUTTON Buttons = Button0; // Вкл: Копки Buy/Sell input bool ObjectLineX = false ; // Button: Horizontal Line(true) || Buy/Sell(false) input bool TickRevers = false ; // Button: Revers input int TrailingStop_STOP_LEVEL = 350 ; // Trailing Stop LEVEL input ENUM_TIMEFRAMES _period = PERIOD_CURRENT ; // period input int limit_total_symbol = 190 ; // limit_total_symbol input int limit_total = 190 ; // limit_total //--- 포지션을 열 때 즉시 손절매가 배치됩니다(노란색 수평선 ) 여기에서 구성 가능 - 입력 이중 InpStopLoss = 55 ; // Obj: 손절매, 핍(1.00045-1.00055=1 핍) 비활성화 0으로 설정 input string t2= "------ Obj:Trailing Line --- " ; // Trailing Obj:Line input double InpStopLoss = 55 ; // Obj: Stop Loss, in pips (1.00045-1.00055=1 pips) input ushort InpObjTrailingStop = 27 ; // Obj: Trailing Stop (distance from price to object, in pips) input ushort InpObjTrailingStep = 9 ; // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips) 파일: Horse_move.mq5 198 kb 2.mq5 17 kb 1...272829303132333435363738394041...63 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
위험을 올바르게 처방하는 방법을 알아 냈습니다.
여기서 lot - TradeSizeOptimized( ) 삽입
Expert에서 수정해야 합니다. 그렇지 않으면 바로 거기에 있지 않습니다.
이름 변경 - 전문가가 완료되었습니다. 모든 버그가 수정되었습니다. 제목 < 말의 움직임 ><말의 움직임>
이전 Expert에 수평선 에 대한 두 가지 방법이 추가되었습니다.
가능성 1: 라인 1은 주어진 거리에서 라인 4를 열 것이고, 라인 2 는 주어진 거리에서 라인 3을 열 것 입니다.
가능성 2: 라인 7은 주어진 거리에서 라인 10을 열고 가격을 따르고 가격이 에 닿으면 명령이 트리거됩니다. 라인 8은 주어진 거리에서 라인 9를 열 것입니다. - 7 및 10과 동일한 작업
#속성 버전 "1.01"
또 다른 가능성이 있었습니다. 1라인은 4와 9가 열릴 것이고, 2라인 은 3과 10이 열릴 것입니다.
7행은 10과 3을 엽니다. 8번 라인은 9번과 4번 을 엽니다.
위치가 반대로 열리고 설정 Obj: 명령 을 건드리지 않도록 합니다.
반전이 있다
#속성 버전 "1.01"
또 다른 가능성이 있었습니다. 1라인은 4와 9가 열릴 것이고, 2라인 은 3과 10이 열릴 것입니다.
7행은 10과 3을 엽니다. 8번 라인은 9번과 4번 을 엽니다.
위치가 반대로 열리고 설정 Obj: 명령 을 건드리지 않도록 합니다.
반전이 있다
이제 테스트를 시작했습니다. 월말까지는 만지지 않을 것입니다. 어떻게 되는지 궁금합니다. -많은, 위험에 처해 -그 자신이 어떻게 든 계산합니다.
별로! 느리지만 증가하는
예! 그는 바로 앞이다
이름 변경 - 전문가가 완료되었습니다. 모든 버그가 수정되었습니다. 제목 < 말의 움직임 ><말의 움직임>
흥미로운 고문.
입력 설정에서 설정 이중 TargetProfit = 30000.00 ; // 목표 이익
아마도 충분하지 않을 것입니다. 더 필요했습니다. 이제 새 진입점을 기다리고 TargetProfit = 35000.00 대상을 설정해야 합니다 . // 목표 이익
표시기 피벗 라인 timezone.mq5에서 R2 -down S2-up 위치를 엽니다.
표시기는 삭제할 수 없습니다. 해당 행은 다음날 업데이트됩니다.
표시기가 아래에 있습니다. 이제 표시기 https://www.mql5.com/ru/code/1114 에 대한 링크를 사이트에서 찾을 것입니다.
입력 설정에서 설정 이중 TargetProfit = 30000.00 ; // 목표 이익
아마도 충분하지 않을 것입니다. 더 필요했습니다. 이제 새 진입점을 기다리고 TargetProfit = 35000.00 대상을 설정해야 합니다 . // 목표 이익
표시기 피벗 라인 timezone.mq5에서 R2 -down S2-up 위치를 엽니다.
표시기는 삭제할 수 없습니다. 해당 행은 다음날 업데이트됩니다.
표시기가 아래에 있습니다. 이제 표시기 https://www.mql5.com/ru/code/1114 에 대한 링크를 사이트에서 찾을 것입니다.
이것은 옵션 중 하나입니다. 그러나 백만 가지 옵션이 있습니다
로트에 대해 말하는 것을 잊었습니다 - 위험 입력 으로 설정 ENUM_LOT_OR_RISK InpLotOrRisk = lot; // 자금 관리: Lot OR 위험
(.log의 전문가 정보) 경고 https://www.mql5.com/ru/docs/event_handlers/ondeinit#속성 버전 "1.02"
버튼에 대한 다른 방법을 찾았습니다.
여기에서 선택
포지션을 열 때 즉시 손절매가 배치됩니다(노란색 수평선 )
여기에서 구성 가능 - 입력 이중 InpStopLoss = 55 ; // Obj: 손절매, 핍(1.00045-1.00055=1 핍)
비활성화 0으로 설정