[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 113

 
r772ra :

위치를 통해 루프

대단히 감사합니다. 이제 모든 것을 시도하겠습니다! 감사합니다!
 
r772ra :

위치를 통해 루프

시도했지만 작동하지 않았습니다. 네, 찾을 수 있습니다. 그러나 문제는 그것이 흔적으로 밝혀졌다는 것입니다. 상황:

예를 들어, 01.01에 거래를 열었지만 조건은 02.01에만 작동했습니다. 저것들. 주문 시가에서 음의 방향으로 가격이 이틀째 50p를 돌파했습니다. 조건이 충족되면 작업이 실행됩니다. 그리고 행동은 거래를 1/3로 줄이는 것입니다. 거래량을 3배로 줄입니다. 그러나 작업은 부지가 완전히 닫힐 때까지 작동합니다. 깃발을 꽂을 수 있습니다. b=0이면 조치가 있습니다. 그리고 행동의 끝에서 b=1. 하루가 끝날 때 플래그를 재설정하지 않으면 기록으로 테스트할 때 트랜잭션이 한 번만 진행됩니다. 0으로 재설정하면 플래그가 0으로 재설정되는 즉시 완전히 닫힐 때까지 작업이 다시 주문을 줄이기 시작합니다. 처음 개설한 거래량과 변경된 거래량 을 비교할 수 있을 거라 생각했지만, 비교하면 항상 같을 것입니다. 왜냐하면 로트의 볼륨을 줄이면 계정의 자금 금액도 감소하므로 초기 볼륨이 다시 계산됩니다. 저것들. 그것도 아니고 벌써 3일째 되는 것 같아요. 스위치를 찾을 수 없습니다. 다른 아이디어가 있는지 알려주세요.

 
Boneshapper :

안녕하세요!

친애하는 전문가 여러분, 말씀해 주십시오.

내 시스템이 주문을 엽니다. 가격이 이 주문의 시작 가격을 50p 초과하는 경우 주문을 수정해야 합니다.

주문선택(0, SELECT_BY_POS,MODE_TRADES);

이중 OPEN = OrderOpenPrice ();
이중 최대값 = OPEN + 0.00500;
Alert("최대값 = ",최대값);
이중 최소값 = OPEN - 0.00500;
새로 고침(); //데이터를 업데이트합니다.
timecur = TimeToStr(TimeCurrent(),TIME_SECONDS); // HH:MM 형식으로 현재 시간을 계산합니다.
if ((timecur > "00:00:00") && (timecur < "22:58:00") && (Deal_s == 1) && (Deal_bb == 0)&& (Bid > maximus))
{
주문선택(0, SELECT_BY_POS,MODE_TRADES);
약탈 = OrderLots() * 0.34;
약탈 = OrderLots() * 0.34;
OrderClose(OrderTicket(), Lootdown, Ask, 10, CLR_NONE);
경고(GetLastError());
Deal_bb = 1;
}

낮에 하면 할 수 있어요. 그리고 그것이 다음날로 옮겨지면 모든 것이 날아갑니다. 새로운 날에 다른 주문이 열릴 수 있고 그는 이미 그것을 추적하고 있지만 이전 주문은 잊어버립니다. 며칠 동안 로트가 닫힐 때까지 조건이 각 로트에 대해 시가 + 50p를 정확히 제어하도록 작성하는 방법을 알려주십시오.

당신은 문자열로 시간을 운전하고 문자열로 자신을 측정 - 원본!
아무것도 발명할 필요가 없습니다. 먼저 시간 해상도를 확인한 다음 주문을 추적하면 됩니다. 여기여기 에서 입증된 솔루션을 찾을 수 있습니다.

 
Boneshapper :

시도했지만 작동하지 않았습니다. 네, 찾을 수 있습니다. 그러나 문제는 그것이 흔적으로 밝혀졌다는 것입니다. 상황:

예를 들어, 01.01에 거래를 열었지만 조건은 02.01에만 작동했습니다. 저것들. 주문 시가에서 음의 방향으로 가격이 이틀째 50p를 돌파했습니다. 조건이 충족되면 작업이 실행됩니다. 그리고 행동은 거래를 1/3로 줄이는 것입니다. 거래량을 3배로 줄입니다. 그러나 작업은 부지가 완전히 닫힐 때까지 작동합니다. 깃발을 꽂을 수 있습니다. b=0이면 조치가 있습니다. 그리고 행동의 끝에서 b=1. 하루가 끝날 때 플래그를 재설정하지 않으면 기록으로 테스트할 때 트랜잭션이 한 번만 진행됩니다. 0으로 재설정하면 플래그가 0으로 재설정되는 즉시 완전히 닫힐 때까지 작업이 다시 주문을 줄이기 시작합니다. 처음 개설된 거래량과 변경된 거래량을 비교할 수 있을 거라 생각했지만, 비교하면 항상 같을 것입니다. 왜냐하면 로트의 볼륨을 줄이면 계정의 자금 금액도 감소하므로 초기 볼륨이 다시 계산됩니다. 저것들. 그것도 아니고 벌써 3일째 되는 것 같아요. 스위치를 찾을 수 없습니다. 다른 아이디어가 있는지 알려주세요.

그나저나 요즘은 어떡하지? 원하는 것을 작성하면 알고리즘이 프롬프트를 표시합니다. 요일을 확인할 필요는 없지만 50 (또는 무엇이든) 포인트가 중요하기 때문에 주문의 손익 및 춤의 손익을 확인할 필요가없는 것 같습니다 ...

 
TarasBY :

당신은 문자열로 시간을 운전하고 문자열로 자신을 측정 - 원본!
아무것도 발명할 필요가 없습니다. 먼저 시간 해상도를 확인한 다음 주문을 추적하면 됩니다. 여기여기 에서 입증된 솔루션을 찾을 수 있습니다.

귀하의 답변에 진심으로 감사드립니다. 정확히 필요한 링크를 제공했습니다. 이제 나는 노력할 것이지만 모든 것이 잘 될 것이라고 생각합니다.

jambs에 관해서는, 죄송합니다. 초보자이며 아직 프로그래밍에 능숙하지 않습니다.

 
artmedia70 :

그나저나 요즘은 어떡하지? 원하는 것을 작성하면 알고리즘이 프롬프트를 표시합니다. 요일을 확인할 필요는 없지만 50 (또는 무엇이든) 포인트가 중요하기 때문에 주문의 손익과 춤을 확인할 필요가없는 것 같습니다 ...

그래, 너가 맞아. 그가 격퇴한 것은 손익상태에서였다. TarasBY는 무엇이 필요한지 정확히 지적했습니다. 지금 처리하겠습니다.

관심을 가져주셔서 감사합니다!

 

프랙탈을 찾는 Kim의 기능을 알려주세요.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает экстремум ЗигЗага по его номеру.                    |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    tf - таймфрейм                  (      0     - текущий ТФ)              |
//|    ne - номер экстремума           (      0     - последний)               |
//|    dp - ExtDepth                                                           |
//|    dv - ExtDeviation                                                       |
//|    bs - ExtBackstep                                                        |
//+----------------------------------------------------------------------------+
double GetExtremumZZPrice( string sy= "" , int tf= 0 , int ne= 0 , int dp= 12 , int dv= 5 , int bs= 3 ) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double zz;
   int     i, k=iBars(sy, tf), ke= 0 ;

   for (i= 1 ; i<k; i++) {
    zz= iCustom (sy, tf, "ZigZag" , dp, dv, bs, 0 , i);
     if (zz!= 0 ) {
      ke++;
       if (ke>ne) return (zz);
    }
  }
   Print ( "GetExtremumZZPrice(): Экстремум ЗигЗага номер " ,ne, " не найден" );
   return ( 0 );
}
특정 기간 동안 팩트 수를 계산하는 동일한 함수를 작성하는 방법은 무엇입니까?
 
berezhnuy :

알려주세요, 프랙탈 검색을 위한 Kim의 기능은 다음과 같습니다.

특정 기간 동안 팩트 수를 계산하는 동일한 함수를 작성하는 방법은 무엇입니까?

이 같은:

 void fGet_ExtremumsZZPrice ( string fs_Symbol,           // инструмент
                             int fi_TF,                   // таймфрейм
                             datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                             int fi_ExtDepth = 12 ,       // ExtDepth         
                             int fi_ExtDeviation = 5 ,     // ExtDeviation
                             int fi_ExtBackstep = 3 )     // ExtBackstep
{
     double ld_Value, lda_Extremum[];
     int     li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0 ;
//---- 
     for ( int li_Bar = 1 ; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag" , fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0 , li_Bar);
         if (ld_Value != 0 .)
        {
             ArrayResize (lda_Extremum, li_IND + 1 );
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//---- 
}

현재 시간 부터 Time_Control까지의 지그재그 극단을 배열로 수집합니다.

 
새로운 프랙탈이나 오래된 프랙탈을 확인하는 기능을 알려주시겠습니까?
 
berezhnuy :
새로운 프랙탈이나 오래된 프랙탈을 확인하는 기능을 알려주시겠습니까?

여기에서 "유용한 기능"이라는 주제로 이동하여 "은색 접시에"를 가져 왔습니다.

 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 07.10.2006                                                      |
//| Описание : Поиск ближайшего фрактала.                                      |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//|   sy - наименование инструмента     (NULL - текущий символ)                |
//|   tf - таймфрейм                    (  0  - текущий ТФ)                    |
//|   mode - тип фрактала               (MODE_LOWER|MODE_UPPER)                |
//+----------------------------------------------------------------------------+
double FindNearFractal( string sy= "0" , int tf= 0 , int mode=MODE_LOWER) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double f= 0 ;
   int d=MarketInfo(sy, MODE_DIGITS), s;
   if (d== 0 ) if ( StringFind (sy, "JPY" )< 0 ) d= 4 ; else d= 2 ;

   for (s= 2 ; s< 100 ; s++) {
    f= iFractals (sy, tf, mode, s);
     if (f!= 0 ) return ( NormalizeDouble (f, d));
  }
   Print ( "FindNearFractal(): Фрактал не найден" );
   return ( 0 );
}
건강하게 살고 즐기세요! 그들은 거기에 없습니다! 물어볼 필요도, 기다릴 필요도 없이 그냥 가져가서 사용하세요!