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

 
Tema97 :

이제 어떻게 해야 하나요??? 채널에 기반한 전략이 있습니다. 대체 대체품이 있습니까?

물론 나는 가지고있다. 값을 계산하고 배열이나 구조에 저장한 다음 EA용으로 가져옵니다. 글쎄, 당신은 또한 거기에서 개체를 그릴 수 있습니다 - 값이 있습니다.
 
Tema97 :

이제 어떻게 해야 하나요??? 채널에 기반한 전략이 있습니다. 대체 대체품이 있습니까?

삽입하는 이유는 무엇입니까? iCustom을 통해 지표를 폴링합니다.
판매용으로 #resource( 리소스 사용량 )를 포함할 수 있습니다.
 
나는 다음을 구현하고 싶다
하나의 시트에 다른 시간대를 추가하는 기능(다른 창에 있지만 동일한 시트에 있음)
파기할 위치와 위치를 알려주십시오.))) 가능하다면 mql 또는 WInApi를 통해 가능합니까?
내가 찾을 수 없는 기사의 예가 있을 수 있습니다(
 
kocunyc89 :

도와주세요! 오류 'Void'를 제공합니다. 유형 36 4가 없는 선언과 어디로 이동하거나 리턴을 입력해야 합니까?
//------------------------------------------------ --------------------
무효 OnTick()
{

void는 대문자가 아닌 작은 소문자로 작성됩니다. 보세요, 다른 색입니다. 이 단어에 커서를 놓고 F1 키를 누르면 종종 도움이 됩니다.

수정 후 오류 메시지 가 너무 많아서... 오류 메시지를 제거했지만 논리를 직접 확인하십시오.

 #property strict

bool Результат;

extern int    SL             = 200 ,       //Стоплосс в пунктах
             TStop          = 20 ,       //
             TStep          = 10 ,       //
             TP             = 85 ;       //Тейкпрофит в пунктах
//extern double Lot          = 0.10;     //используется только при risk = 0
extern double Lots           =   0 ;       // лот, если 0, то динамический
extern double RiskPercentage =   50 ;       // % от депо на лот, если динамический
extern int     MaxOrders      = 6 ;         //Максимальное кол-во ордеров одного направления

//--------------------------------------------------------------------
int STOPLEVEL,Magic= 123321 ,tip;
datetime TimeBar;

string txt;
//--------------------------------------------------------------------
int init()
{
   if ( Digits == 3 || Digits == 5 )
   {
      TStop *= 10 ;
      TStep *= 10 ;
      SL    *= 10 ;
   }
   return ( INIT_SUCCEEDED );
}


//--------------------------------------------------------------------
void OnTick ()
{
   double Lot = Lots;
   int Ticket = 0 ;
   if (Lots== 0 )
  {
     double margin = MarketInfo( Symbol (), MODE_MARGINREQUIRED);
     double minLot = MarketInfo( Symbol (), MODE_MINLOT);
     double maxLot = MarketInfo( Symbol (), MODE_MAXLOT);
     double step   = MarketInfo( Symbol (), MODE_LOTSTEP);
     double account = AccountFreeMargin();
     double percentage = account*RiskPercentage/ 100 ;
  
    Lot = MathRound (percentage/margin/step)*step;
  
     if (Lot < minLot) Lot = minLot;

     if (Lot > maxLot)Lot = maxLot;
  }

   int buy= 0 ,sell= 0 ;
   for ( int i= 0 ; i< OrdersTotal (); i++)
  {
     if ( OrderSelect (i, SELECT_BY_POS))
    {
         if (OrderSymbol()!= Symbol () || OrderMagicNumber()!=Magic) continue ;
         tip=OrderType();
         if (tip== 0 ) buy++;
         if (tip== 1 ) sell++;
    }  
  }

   Comment (txt, "\nБаланс " ,DoubleToStr(AccountBalance(), 2 ), "\nЭквити " ,DoubleToStr(AccountEquity(), 2 ), "\nBuy " ,buy, "\nSel " ,sell);
   double TrPr= 0 ,StLo= 0 ;
   double L    = NormalizeDouble (Low[ 0 ], Digits );
   double L1   = NormalizeDouble (Low[ 1 ], Digits );
   double L2   = NormalizeDouble (Low[ 2 ], Digits );
   double L3   = NormalizeDouble (Low[ 3 ], Digits );

   double H   = NormalizeDouble (High[ 0 ], Digits );
   double H1  = NormalizeDouble (High[ 1 ], Digits );
   double H2  = NormalizeDouble (High[ 2 ], Digits );
   double H3  = NormalizeDouble (High[ 3 ], Digits );

   double O   = NormalizeDouble (Open[ 0 ], Digits );
   double O1  = NormalizeDouble (Open[ 1 ], Digits );
   double O2  = NormalizeDouble (Open[ 2 ], Digits );
   double O3  = NormalizeDouble (Open[ 3 ], Digits );

   double C   = NormalizeDouble (Close[ 0 ], Digits );
   double C1  = NormalizeDouble (Close[ 1 ], Digits );
   double C2  = NormalizeDouble (Close[ 2 ], Digits );
   double C3  = NormalizeDouble (Close[ 3 ], Digits );

                         //LONG
   if (buy<MaxOrders  && TimeBar!=Time[ 0 ]&& H>H1&&H1>H2&&H2>H3)
  {
     if (TP!= 0 ) TrPr = NormalizeDouble (Ask + TP * Point , Digits );
     if (SL!= 0 ) StLo = NormalizeDouble (Bid - SL * Point , Digits );
    Ticket= OrderSend ( Symbol (),OP_BUY, Lots, NormalizeDouble (Ask, Digits ), 3 , 0 , 0 , "BreakdownLevelCandleMA" ,Magic, 0 ,Blue);
     if (Ticket== 0 )
     Print ( "Error BUY" , GetLastError (), "" , Symbol (), "   Lot " ,Lot, "   SL " ,StLo, "   TP " ,TrPr);
     else
    {
      Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr, 0 ,Blue);
      TimeBar=Time[ 0 ];
    }
  }

                                   //SHORT
   if (sell<MaxOrders && TimeBar!=Time[ 0 ]&& L>L1&&L1>L2&&L2>L3)
  {
     if (TP!= 0 ) TrPr = NormalizeDouble (Bid - TP * Point , Digits );
     if (SL!= 0 ) StLo = NormalizeDouble (Ask + SL * Point , Digits );
    Ticket= OrderSend ( Symbol (),OP_SELL,Lots, NormalizeDouble (Bid, Digits ), 3 , 0 , 0 , "BreakdownLevelCandleMA" ,Magic, 0 ,Red);
     if (Ticket== 0 )
     Print ( "Error SELL" , GetLastError (), "" , Symbol (), "   Lot " ,Lot, "   SL " ,StLo, "   TP " ,TrPr);
     else
    {
      Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr, 0 ,Red);
      TimeBar=Time[ 0 ];
    }
  }

  Trailing();
}
//!!! куда передвинуть?   return(0);


void Trailing()
{
   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)
        {
           if (Bid-OrderOpenPrice()> TStop* Point || OrderStopLoss() == 0 )
          {
             if (OrderStopLoss()<Bid-(TStep+TStop)* Point || OrderStopLoss() == 0 )
            {
               if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble (Bid-TStop* Point , Digits ), 0 , 0 ))
               Print ( "Ошибка модификации ордера на покупку" );
            }
          }
        }

         if (OrderType()==OP_SELL)
        {
           if (OrderOpenPrice()-Ask>TStop* Point || OrderStopLoss() == 0 )
          {
             if ((OrderStopLoss()> (Ask+(TStep+TStop)* Point ))  || (OrderStopLoss()== 0 )  )
            {
               if (!OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Ask+TStop* Point , Digits ), 0 , 0 ))
                {
                         Print ( "Ошибка модификации ордера на продажу" );
                }
            }
          }
        }
      }
    }
  }
}

 
LRA :

void는 대문자가 아닌 작은 소문자로 작성됩니다. 보세요, 다른 색입니다. 이 단어에 커서를 놓고 F1 키를 누르면 종종 도움이 됩니다.

수정 후 에러 메시지가 너무 많아서... 에러 메시지는 없앴지만 로직은 직접 확인


매우 친절한 사람 감사합니다!

 
안녕하세요 상인 여러분! 위에 포스팅한 코드를 바탕으로 시그널 로봇을 작성했습니다. 로봇은 옵션에 대한 신호를 거의 정확하게 제공하지만 두 막대의 지연만 있습니다. 동일한 결과를 생성하지만 두 개의 바를 더 빨리 생성하려면 코드를 어떻게 변경해야 합니까? 아니면 불가능한가요? 고맙습니다.
 
알려주세요 - 맞춤 표시기 가 있습니다 - 채널 - 채널의 위쪽 경계 값을 반환해야 합니다 - 어떻게 해야 하나요?
 
artmedia70 :

int 변수는 정확히 1970년 이후의 초 수를 포함하고 datetime 변수는 날짜를 포함합니다.

기록에 특정 막대가 필요한 경우 지정 방법은 중요하지 않습니다. 날짜 또는 초 단위로, 어쨌든 변수는 도착 여부에 관계없이 이 특정 막대의 여는 시간을 가리킵니다. 새로운 진드기와 새로운 막대의 열기.

정말 감사합니다. 무슨 일이 일어나고 있는지 이해할 수 없는 또 다른 걸림돌이 있습니다. 통계 기능이 있는 표시기가 있는데 이 기능은 새 신호가 도착할 때만 읽어야 하며 이 감염은 각 막대에서 계산됩니다. 이 감염은 제가 방금 하지 않았고 비교 시 도블을 정규화했습니다. 간단히 말해서 엉덩이. 나는 밤새도록 죽였다. 누가 무엇이 잘못되었는지 설명 할 수 있습니까 ???? 193번 라인 공격의 인디케이터는 조건을 가진 함수를 호출 하지만 조건이 충족되지 않고 각 막대가 도착할 때 분기 통계가 계산됩니다. 이미 오류를 찾는 데 지쳤습니다. 여러분 도와주세요!! !!! 미리 감사합니다....
파일:
 

그리고 두 지표가 모두 차트에 있을 때 지표가 다른 지표에서 호출 되면 stat 함수가 다시 계산된다는 것을 방금 알았습니다. 즉, 자체적으로 계산된 후 이를 호출하는 지표에 대해 두 번째로 계산됩니다. 그것은 무엇입니까???

 

다음 그림이 있습니다. 위 댓글입니다. 이것은 계산이 발생하는 기본 표시기의 버퍼 값이고 인쇄(아래)는 동일한 버퍼이지만 다른 표시기로 호출되어 인쇄로 출력될 뿐입니다. 그 차이가 상당하지만 왜!!!!!

첫 번째 파일 은 기본 파일이고 두 번째 파일은 첫 번째 파일에서 버퍼가 호출되는 ....

파일: