KimIV의 유용한 기능 - 페이지 55

 
Rosh писал(а) >>

그런 기능은 없습니다. Expert Advisor가 첨부된 차트에서만 개체를 생성하고 관리할 수 있습니다.

귀하의 신속한 응답에 감사드립니다. 그리고 그것은 Metatrader의 5번째 버전에 있습니까?

 
KimIV, 하지만 컬렉션에 하나의 명령으로 열려 있는 모든 주문을 닫는 스크립트가 없습니다: buy, Sell, buystop, Sellstop, buylimit, Selllimit - 강제로 주기적으로 오류 없이 닫히면 그게 다죠 ???
 

http://forum.alpari-idc.ru/showpost.php?p=368730&postcount=24

여기에서 찾았습니다.

 
KimIV, 하지만 컬렉션에 다음과 같은 스크립트가 없습니다. ByMarketBuySymbols 및 ByMarketSellSymbols만 일반적입니다. 스크립트가 5개의 매수 포지션과 2개의 매도 포지션을 연다고 가정해 보겠습니다.
 
친애하는 KimIV님,

훌륭한 일을 해주셔서 대단히 감사합니다.

요청: 가능하면 첫 번째 게시물에서 분기의 관련 페이지에 대한 링크와 간단한 설명이 포함된 기능/스크립트 목록을 게시하고 업데이트합니다. 그러면 슈퍼 도구가 될 것입니다! 그리고 어딘가에 누군가가 "김에게 보낼 것입니다"라고 말한 다음 여기에서 오랫동안 스크롤하여 ...

 

MovingInWL() 함수.

미결 포지션의 StopLoss 가격 수준을 손익분기점으로 이동합니다. MovingInWL() 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • sy - 도구 이름. "" - 모든 문자, NULL - 현재 문자. 기본값은 "" 입니다.
  • op - 거래 작업. 유효한 값: -1 , OP_BUY , OP_SELL . 기본값은 -1 - 모든 작업입니다.
  • mn - 거래 작업의 식별자, MagicNumber . 기본값은 -1 - 모든 마법입니다.

또한 MovingInWL() 함수는 전역 변수(스크립트 또는 Expert Advisor의 외부 매개변수)가 있다고 가정합니다.

  • int LevelProfit - 스톱이 손익분기점 수준으로 이동하기 위해 위치가 도달해야 하는 포인트 단위의 이익 수준입니다.
  • int LevelWLoss - 이익이 LevelProfit 레벨(포인트)에 도달한 후 포지션 스톱이 이동할 포인트의 손익분기 레벨입니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL ( string sy = "" , int op = - 1 , int mn = - 1 ) {
   double po , pp ;
   int     i , k = OrdersTotal ( ) ;

   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) {
      po = MarketInfo ( OrderSymbol ( ) , MODE_POINT ) ;
       if ( OrderType ( ) = = OP_BUY ) {
         if ( OrderStopLoss ( ) - OrderOpenPrice ( ) < LevelWLoss * po ) {
          pp = MarketInfo ( OrderSymbol ( ) , MODE_BID ) ;
           if ( pp - OrderOpenPrice ( ) > LevelProfit * po ) {
            ModifyOrder ( - 1 , OrderOpenPrice ( ) + LevelWLoss * po , - 1 ) ;
           }
         }
       }
       if ( OrderType ( ) = = OP_SELL ) {
         if ( OrderStopLoss ( ) = = 0 | | OrderOpenPrice ( ) - OrderStopLoss ( ) < LevelWLoss * po ) {
          pp = MarketInfo ( OrderSymbol ( ) , MODE_ASK ) ;
           if ( OrderOpenPrice ( ) - pp > LevelProfit * po ) {
            ModifyOrder ( - 1 , OrderOpenPrice ( ) - LevelWLoss * po , - 1 ) ;
           }
         }
       }
     }
   }
}

추신. MovingInWL() 함수 사용의 예가 있는 Expert Advisor는 여기 에서 찾을 수 있습니다.

 
mamma писал(а) >>
가능하면 첫 번째 게시물에서 분기의 관련 페이지에 대한 링크와 간단한 설명이 포함된 기능/스크립트 목록을 게시하고 업데이트합니다.

첫 번째 페이지에서 더 이상 가능하지 않습니다 ...

여기에 올릴께요...업데이트 글이 차단되면 다시 올리겠습니다. 그러니 계속 지켜봐 주세요 :-)

파일:
f_kimiv_1.rar  11 kb
 

SimpleTrailing() 함수.

TrailingStop 알고리즘에 따라 오픈 포지션의 StopLoss 가격 수준을 이동합니다. SimpleTrailing() 함수는 다음과 같은 선택적 매개변수를 허용합니다.

  • sy - 도구 이름. "" - 모든 문자, NULL - 현재 문자. 기본값은 "" 입니다.
  • op - 거래 작업. 유효한 값: -1 , OP_BUY , OP_SELL . 기본값은 -1 - 모든 작업입니다.
  • mn - 거래 작업의 식별자, MagicNumber. 기본값은 -1 - 모든 마법입니다.

또한 SimpleTrailing() 함수는 전역 변수(스크립트 또는 Expert Advisor의 외부 매개변수)가 있다고 가정합니다.

  • bool TSProfitOnly - 트롤이 작업을 시작하는 구역의 스위치입니다. True 이면 포지션 이익이 TStop.Buy/Sell+TrailingStep 포인트 값에 도달한 후에만 후행이 작동하기 시작합니다. False 이면 EA는 현재 가격을 기준으로 포지션 스톱이 항상 TStop.Buy/Sell+TrailingStep 포인트보다 크지 않은지 확인합니다. 즉, True 이면 EA가 해당 포지션의 이익 영역에서만 작동하고, False 이면 음수 영역에서 작동합니다.
  • int TStop.Buy - 트롤 크기(포인트).
  • int TStop.Sell - 판매 포인트 단위의 트롤 크기입니다.
  • int TrailingStep - 포인트의 후행 단계. 잦은 요청으로 딜러를 괴롭히지 않기 위해 필요합니다.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing ( string sy = "" , int op = - 1 , int mn = - 1 ) {
   double po , pp ;
   int     i , k = OrdersTotal ( ) ;

   if ( sy = = "0" ) sy = Symbol ( ) ;
   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) {
       if ( ( OrderSymbol ( ) = = sy | | sy = = "" ) & & ( op < 0 | | OrderType ( ) = = op ) ) {
        po = MarketInfo ( OrderSymbol ( ) , MODE_POINT ) ;
         if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {
           if ( OrderType ( ) = = OP_BUY ) {
            pp = MarketInfo ( OrderSymbol ( ) , MODE_BID ) ;
             if ( ! TSProfitOnly | | pp - OrderOpenPrice ( ) > TStop . Buy * po ) {
               if ( OrderStopLoss ( ) < pp - ( TStop . Buy + TrailingStep - 1 ) * po ) {
                ModifyOrder ( - 1 , pp - TStop . Buy * po , - 1 ) ;
               }
             }
           }
           if ( OrderType ( ) = = OP_SELL ) {
            pp = MarketInfo ( OrderSymbol ( ) , MODE_ASK ) ;
             if ( ! TSProfitOnly | | OrderOpenPrice ( ) - pp > TStop . Sell * po ) {
               if ( OrderStopLoss ( ) > pp + ( TStop . Sell + TrailingStep - 1 ) * po | | OrderStopLoss ( ) = = 0 ) {
                ModifyOrder ( - 1 , pp + TStop . Sell * po , - 1 ) ;
               }
             }
           }
         }
       }
     }
   }
}

추신. SimpleTrailing() 함수 사용의 예가 있는 EA는 여기 에서 찾을 수 있습니다.

 

//------- 외부 모듈 연결 --------------------------------------- ---+

#include "b-Positions.mqh" // 위치 작업

이 파일을 어디에서 찾을 수 있습니까?

 
beginner писал(а) >>

//------- 외부 모듈 연결 --------------------------------------- ---+

#include "b-Positions.mqh" // 위치 작업

이 파일을 어디에서 찾을 수 있습니까?

여기

사유: