[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 634

 
artmedia70 :

그리고 뒤에 하나 더...

차트 창에서 테스트할 때 템플릿에서 자동으로 로드되는 모든 칠면조를 제거했습니다(템플릿은 Advisor의 이름을 따서 명명되었으며 테스트 중에 자동으로 로드됨).

테스터의 로그는 맞춤형 칠면조의 성공적인 로딩에 대해 지속적으로 기록하고 즉시 삭제 기록이 이어집니다. 그래서 시험 내내 ...

이게 정상인가요 장이 없는건가요?

그리고 그것을 극복하는 방법?


나는 늦었다. 대답은 아마도 비슷하지만 나 자신도 비슷한 문제를 겪었다. 이것은 좋지 않습니다 :)

나에게 유사한 로그 항목은 iCustom()을 통해 사용자 지정 표시기 를 호출할 때 매개변수 중 하나를 전달하는 것을 실수로 잊어버렸기 때문에 발생했습니다. 컴파일러는 테스트 중에도 이러한 오류를 추적하지 않습니다. 표시기 이름이 올바르게 설정되어 있으면 MT에서 모든 것이 성공적으로 로드되었다고 기록하지만 아무도 매개변수의 수를 확인하지 않고 매개변수가 잘못 설정되어 오류가 발생합니다. 표시기에 표시되고 즉시 언로드됩니다. 테스트가 천천히 통과하기 시작했고 로그에 하나만 있음을 확인했습니다.

01:11:13 2000.01.03 02:00  EMMA_Update_2 EURUSD,M15: 성공적으로 로드됨

01:11:13 2000.01.03 02:00  EMMA_Update_2 EURUSD,M15: 제거됨

01:11:13 2000.01.03 02:01  EMMA_Update_2 EURUSD,M15: 성공적으로 로드됨

01:11:13 2000.01.03 02:01  EMMA_Update_2 EURUSD,M15: 제거됨

나는 "이동 중"에서 표시기를 넣거나 제거하려고 시도한 템플릿에 대해 부주의로 그러한 문제를 이해하고 발견하기 시작했으며 이에 대한 로그에서 "부흥"을 보지 못했습니다. 전체 문제는 iCustom()과 함께 사용하므로 만일을 대비하여 확인하세요 :)

 

ToLik_SRGV :

모든 문제는 iCustom()에 있었으므로 만일을 대비하여 확인하세요 :)

모든 것은 맞다. 이는 잘못된 인수 수 때문입니다.
 

보류 중인 주문 의 만료 날짜를 설정하는 방법에 대한 조언을 제공합니다.

어쩐지 그는 나를 위해 일하기를 원하지 않고 참고 책에는 그를 많이 설명하지 않습니다.

가능하다면 예시.

미리 감사드립니다.

 
ToLik_SRGV :

나는 늦었다. 대답은 아마도 비슷하지만 나 자신도 비슷한 문제를 겪었다. 이것은 좋지 않습니다 :)

나에게 유사한 로그 항목은 iCustom()을 통해 사용자 지정 표시기를 호출할 때 매개변수 중 하나를 전달하는 것을 실수로 잊어버렸기 때문에 발생했습니다. 컴파일러는 테스트 중에도 이러한 오류를 추적하지 않습니다. 표시기 이름이 올바르게 설정되어 있으면 MT에서 모든 것이 성공적으로 로드되었다고 기록하지만 아무도 매개변수의 수를 확인하지 않고 매개변수가 잘못 설정되어 오류가 발생합니다. 표시기에 표시되고 즉시 언로드됩니다. 테스트가 천천히 통과하기 시작했고 로그에 하나만 있음을 확인했습니다.

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 성공적으로 로드됨

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 제거됨

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 성공적으로 로드됨

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 제거됨

나는 "이동 중"에서 표시기를 넣거나 제거하려고 시도한 템플릿에 대해 부주의로 그러한 문제를 이해하고 발견하기 시작했으며 이에 대한 로그에서 "부흥"을 보지 못했습니다. 전체 문제는 iCustom()과 함께 사용하므로 만일을 대비하여 확인하세요 :)

아뇨, 늦지 않았어요... 맞아요, 고마워요.
 
kwadrad :

보류 중인 주문의 만료 날짜를 설정하는 방법에 대한 조언을 제공합니다.

어쩐지 그는 나를 위해 일하기를 원하지 않고 참고 책에는 그를 많이 설명하지 않습니다.

가능하다면 예시.

미리 감사드립니다.

여기. 나는 이것을 좋아한다...

   double    tp,PriceOpn,PriceTake;
   string    sy= Symbol ();
   double pa=MarketInfo(sy, MODE_ASK);
   double pb=MarketInfo(sy, MODE_BID);
   double po=MarketInfo(sy, MODE_POINT);

   Magic= 511 ;
   Lots_New=NormalizeLot(Lots/ 2 , False, NULL );
         
   PriceOpn  = NormalizePrice(pa+DistORD*po, NULL );
   PriceTake = NormalizePrice(pa+(DistORD+tp)*po, NULL );
 //------------------------------------------------------------------
   SetOrder( NULL , OP_BUYSTOP, Lots_New, PriceOpn, 0 , PriceTake, Magic, TimeCurrent ()+ 12 * 60 ); // 12 часов срок его жизни...
 //------------------------------------------------------------------
//==============================================================================================

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 02.08.2008                                                     |
//|  Описание : Установка ордера.                                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    co - комментарий                                                        |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
void SetOrder( string sy, int op, double ll, double pp,
               double sl= 0 , double tp= 0 , int mn= 0 , string co= "" , datetime ex= 0 ) {
   color     cl=IIFc(op==OP_BUYLIMIT || op==OP_BUYSTOP, clOpenBuy, clOpenSell);
   datetime ot;
   double    pa, pb, mp;
   int       err, it, ticket, msl;

   if (sy== "" || sy== "0" ) sy= Symbol ();
  msl=MarketInfo(sy, MODE_STOPLEVEL);
   if (co== "" ) co=WindowExpertName()+ " " +GetNameTF( Period ());
   if (ex> 0 && ex< TimeCurrent ()) ex= 0 ;
   for (it= 1 ; it<=NumberOfTry; it++) {
     if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) {
       Print ( "SetOrder(): Остановка работы функции" );
       break ;
    }
     while (!IsTradeAllowed()) Sleep ( 5000 );
    RefreshRates();
    ot= TimeCurrent ();
    ticket= OrderSend (sy, op, ll, pp, Slippage, sl, tp, co, mn, ex, cl);
     if (ticket> 0 ) {
       if (UseSound) PlaySound (SoundSuccess); break ;
    } else {
      err= GetLastError ();
       if (err== 128 || err== 142 || err== 143 ) {
         Sleep ( 1000 * 66 );
         if (ExistOrders(sy, op, mn, ot)) {
           if (UseSound) PlaySound (SoundSuccess); break ;
        }
         Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
         continue ;
      }
       if (UseSound) PlaySound (SoundError);
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
       if (pa== 0 && pb== 0 ) Message( "SetOrder(): Проверьте в обзоре рынка наличие символа " +sy);
       Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
       Print ( "Ask=" ,pa, "  Bid=" ,pb, "  sy=" ,sy, "  ll=" ,ll, "  op=" ,GetNameOP(op),
             "  pp=" ,pp, "  sl=" ,sl, "  tp=" ,tp, "  mn=" ,mn);
       // Неправильные стопы
       if (err== 130 ) {
         // Корректировка ценовых уровней
         if (modeSetOrders== 1 ) {
           Sleep ( 1000 * 5.3 );
           switch (op) {
             case OP_BUYLIMIT:
               if (pp>pa-msl*mp) pp=pa-msl*mp;
               if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
               if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
               break ;
             case OP_BUYSTOP:
               if (pp<pa+(msl+ 1 )*mp) pp=pa+(msl+ 1 )*mp;
               if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
               if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
               break ;
             case OP_SELLLIMIT:
               if (pp<pb+msl*mp) pp=pb+msl*mp;
               if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
               if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
               break ;
             case OP_SELLSTOP:
               if (pp>pb-msl*mp) pp=pb-msl*mp;
               if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
               if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
               break ;
          }
           Print ( "SetOrder(): Скорректированы ценовые уровни" );
           continue ;
        }
         // Вход по текущим ценам
         if (modeSetOrders== 2 ) {
           Print ( "SetOrder(): Вход по текущим ценам" );
           if (op==OP_BUYLIMIT || op==OP_BUYSTOP) OpenPosition(sy, OP_BUY, ll, sl, tp, mn, co);
           if (op==OP_SELLLIMIT || op==OP_SELLSTOP) OpenPosition(sy, OP_SELL, ll, sl, tp, mn, co);
           break ;
        }
      }
       // Блокировка работы советника
       if (err== 2 || err== 64 || err== 65 || err== 133 ) {
        gbDisabled=True; break ;
      }
       // Длительная пауза
       if (err== 4 || err== 131 || err== 132 ) {
         Sleep ( 1000 * 300 ); break ;
      }
       // Слишком частые запросы (8) или слишком много запросов (141)
       if (err== 8 || err== 141 ) Sleep ( 1000 * 100 );
       if (err== 139 || err== 140 || err== 148 ) break ;
       // Ожидание освобождения подсистемы торговли
       if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
       // Обнуление даты истечения
       if (err== 147 ) {
        ex= 0 ; continue ;
      }
       if (err!= 135 && err!= 138 ) Sleep ( 1000 * 7.7 );
    }
  }
}
 
artmedia70 :

여기. 나는 이것을 좋아한다...




오 감사.

당신은 이해해야합니다, 이것은 오프닝에서 분 단위의 시간입니까?

 
kwadrad :


오 감사.

당신은 이해해야합니다, 이것은 오프닝에서 분 단위의 시간입니까?

예, 예에서 12시간은 수명이... 12*60분입니다.
 

나는 그것이 OffTop처럼 보일 수 있다는 것을 이해하지만, 저에게 전문가 작성 의 초보자(일반적으로 프로그래밍에서 20년 전 Spectrum용 어셈블러 프로그래밍 경험을 고려하지 않음)로서 제 질문은 오히려 .. .. 오 글쎄요, 그냥 질문입니다. 그것은 바로 주제에 있을 것입니다:

2년의 역사에 대해 Expert Advisor를 테스트하면서 나는 매우 강한 하락이 있는 달을 발견했습니다. 다음은 기존 사용자를 위한 질문입니다. 어떤 방식으로 드로다운을 처리할 수 있는지, 어떤 것이 가장 효과적인지 조언할 수 있습니다.

내 종탑에서 지금까지 두 가지 방법을 봅니다.

1. 자기자본 감소율이 일정 비율 이상 높으면 모든 거래를 동결하고
1.1 각 위치에 대해 손익분기점에 도달한 후 후행 스탑을 연결하고 Ask/Bid에서 작은 거리에 스탑을 고정하여 작은 이익을 스테이킹한 다음 가격 뒤에서 스탑을 당겨 도중에 위치를 부분적으로 청산합니다. 자금 해제) 일정 수의 이익 포인트에 도달하면.
1.2 자기자본을 일정비율 올린 후 천천히 매매를 시작합니다...

2. 반대로 메인 트레이딩을 끄고 토핑을 절반으로 줄였지만 주문이 많으면 손익분기점 후 작은 트레일링 스탑으로 추세를 엄격히 따릅니다.

제 생각에는 첫 번째 방법이 더 큰 자본 감소로부터 당신을 조금 보호하지만 시장이 주문을 따라 잡을 때까지 매우 오랜 시간을 기다릴 수 있습니다.
두 번째 방법은 마진을 먹지만 단기 포지션을 사용하면 자금에 약간의 자금을 빠르게 추가합니다...

지금까지 나는 그러한 반대 방향의 두 가지 방법만을 보았습니다.

당신은 무엇을 조언합니까, 내 동지들??? 언뜻보기에 "미친 터무니없는"생각과 제안은 무엇이든 가장 환영합니다 ...

미리 감사드립니다 :)

 
그리고 테스터는 며칠 이상 테스트를 허용하지 않습니까?
 
artmedia70 :
그리고 테스터는 며칠 이상 테스트를 허용하지 않습니까?


에스

은행간 시장에 대한 고문을 준비하고 있습니까?