포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 710

 
sponger :
다음과 같이 할 수 있습니다. Km=MathMax (i/r, Point ); // 나누기, 0은 없을 것입니다!
 
borilunad :
다음과 같이 할 수 있습니다. Km=MathMax (i/r,Point); // 나누기, 0은 없을 것입니다!

우우우우우!!! 머리! 매우 감사합니다!!! 4시간의 매우 지루한 작업 끝에 테스터가 욕하지 않도록 이 기능을 고수하는 방법을 찾았습니다.) 다음과 같은 것이 나왔습니다.

더블 a=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m1,0); //최소 가격으로 n-기간 동안 막대 인덱스를 반환합니다.

이중 b=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m1,0); //최대 가격이 있는 n-기간 동안 막대 인덱스를 반환합니다.

이중 MinLOWPeriod=iLow(Symbol(),PERIOD_M1,a); //가장 낮은 가격의 바 가격을 반환

이중 MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,b); //가장 높은 가격을 가진 막대의 가격 값을 반환합니다.

이중 PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //마지막 바의 종가를 반환

double xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Point));

인쇄(xm1);

또한 공식을 더 논리적으로 만들었습니다.)

고맙습니다!

 
Жалко, кнопочки "Спасибо" нету(
 

sponger :

'감사합니다' 버튼이 없는 것이 아쉽습니다.

그러나 또 다른 마법의 버튼이 있습니다. SRC 를 사용하면 질문자의 게시물에서 코드(또는 그 조각)가 더 잘 정리되고 읽기 쉬워지며 질문자의 업보에 플러스를 추가하고 보는 사람들의 수를 늘립니다. 이 코드를 보고 도움을 주기로 결정합니다.

큭큭큭큭큭..... 그래서 SRC 버튼의 마법의 비밀 지식에서는 기본적으로 신성한 텍스트 를 존중하는 사이트의 매뉴얼 만 헌정됩니다. 예를 들어 다음 과 같습니다.

추가 질문을 풀 때 비밀 지식을 마스터 하는 데 성공했습니다!
 
sponger :

우우우우우우!!! 머리! 매우 감사합니다!!! 4시간의 매우 지루한 작업 끝에 테스터가 욕하지 않도록 이 기능을 고수하는 방법을 찾았습니다.) 다음과 같은 것이 나왔습니다.

더블 xm1=(PriceCloseBar-MinLOWPeriod)/(MathMax((MaxHIGHPeriod-MinLOWPeriod)/100,Point));

인쇄(xm1);

또한 공식을 더 논리적으로 만들었습니다.)

고맙습니다!

별말씀을요! 그리고 나는 DiPach 100%%에 동의합니다! 행운을 빕니다!
 
void ChagingLots( int Magic, double percent, double lot)
{ 
   double t= 2 ,             //коэффициент при делении,для того чтобы узнать цену закрытия
         PriceCl,         //цена закрытия части ордера
         takeprofit;       //нужна для вычислений
   int count = 0 ,order;
   for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)     //пробегаемся по массиву ордеров
     {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
          {
             if (OrderSymbol()== Symbol () && OrderMagicNumber() == Magic)
              {
                 if (OrderType()== OP_BUY)         //если ордер на покупку
                 {
                 takeprofit = OrderTakeProfit();   //вычисляем тейк ордера
                 PriceCl    = NormalizeDouble ((takeprofit + OrderOpenPrice())/t, Digits );   //примерную цену закрытия
                 order = OrderTicket();     //получили ордер
                 if (Bid>PriceCl) //если текущая цена оказалась выше нашей цены ,то закрываем часть ордера
                 {OrderClose(order, NormalizeDouble (lot*percent/ 100 , 2 ),PriceCl, 3 );} 
                 }
                 if ( OrderType()== OP_SELL ) // для продажи аналогично
                 {
                   takeprofit = OrderTakeProfit();
                   PriceCl    = NormalizeDouble ((takeprofit + OrderOpenPrice())/t, Digits );
                   order = OrderTicket();
                   if (Bid<PriceCl)
                   {OrderClose(order, NormalizeDouble (lot*percent/ 100 , 2 ),Bid, 3 );}
                 }
              }
          }
     }
     
}

여보세요)

포지션의 일부를 닫는 함수를 작성하려고 했는데 테스터에서 실행을 시작하면 에러 138 이 뜨는데 뭐가 문제인지 이해가 안되네요 도와주세요.

다음은 이 기능이 작동해야 하는 어드바이저입니다)

파일:
zigzagx.mq4  16 kb
 
LBatters :

여보세요)

포지션의 일부를 닫는 함수를 작성하려고 했는데 테스터에서 실행하기 시작하면 에러 138이 뜨는데 뭐가 문제인지 이해가 안되네요 도와주세요.

다음은 이 기능이 작동해야 하는 어드바이저입니다)

문서를 살펴보셨나요? 이 오류는 무엇을 의미합니까?! 여기에서 답을 찾을 수 있습니다!

Bai는 얼마에 마감합니까? 그리고 셀?

 

모두를 환영합니다
내 질문은 메타 인용의 개발자와 더 관련이 있지만 여전히 ...


Сколько баров храниться история? Т.е. с каким максимальным по сдвигу баром можно работать?

코드:

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,1200));

Print(iClose(Symbol(),0,1200));

이러한 시프트를 테스트할 때 터미널은 2개의 경우에 대해 0.0을 출력합니다.

,하지만

Print(iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,120));

Print(iClose(Symbol(),0,120)); 

테스트하면 모든 것이 작동합니다.

사용 가능한 기록의 양을 어떻게든 조절할 수 있습니까? 누구든지이 문제를 겪고 이미 해결책을 찾았습니까?
미리 감사드립니다!

 

모두들 안녕.

Kim의 간단한 후행 EA를 추가하여 모든 시장 주문을 마감한 후 보류 중인 주문을 삭제 하고 작동하지 않도록 하려고 합니다(

주문 삭제 기능을 삽입했습니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Удаление ордеров                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
   bool fd;
   int   err, i, it, k= OrdersTotal (), ot;

   if (sy== "0" ) sy= Symbol ();
   for (i=k- 1 ; i>= 0 ; i--) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
       if (ot> 1 && ot< 6 ) {
         if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ot==op)) {
           if (mn< 0 || OrderMagicNumber()==mn) {
             for (it= 1 ; it<=NumberOfTry; it++) {
               if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) break ;
               while (!IsTradeAllowed()) Sleep ( 5000 );
              fd=OrderDelete(OrderTicket(), clDelete);
               if (fd) {
                 if (UseSound) PlaySound (SoundSuccess); break ;
              } else {
                err= GetLastError ();
                 if (UseSound) PlaySound (SoundError);
                 Print ( "Error(" ,err, ") delete order " ,GetNameOP(ot), ": " ,ErrorDescription(err), ", try " ,it);
                 Sleep ( 1000 * 5 );
              }
            }
          }
        }
      }
    }
  }
}

그러다가 제가 코드에 약하고 마스터하기 힘든 문제에 부딪쳤습니다.

다음과 같은 조건을 작성해야 한다고 생각합니다.

이것은 다른 EA의 예시일 뿐입니다.

    if (AccountProfit()<-TargetLoss || AccountProfit()>TargetProfit) 
     {
      ClosePosFirstProfit();
       if (DeleteOrders) DeleteOrders();
     }


도와주세요, 제발.

파일:
tral.mq4  19 kb
 
MQL-4 전문가 여러분, MQ4 코드를 사용하여 칠면조를 언로드하고 다시 로드하는 방법은 무엇입니까?