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

 
biragr :

관심을 가져 주셔서 감사합니다. 그러나 귀하의 질문의 본질을 이해하지 못했습니다. 원칙적으로 어제 또는 내일 수 있습니다. 선은 아무 날짜에나 배치할 수 있으며 차트에 도달하면 고문이 작동합니까? 또는 설명이 어렵지 않다면 뭔가 이해가 되지 않습니다.
좋아, 당신은 요일에 선을 긋고 있지만 그것이 시간에 있다면 어떨까요? 주문 을 여는 시간은 라인에 의해 결정되거나 엄격하게 설정됩니까? 한 달 동안의 일정 라인을 설정하거나 내 링크의 전문가로 충분합니다.
[Deleted]  
kolyango :

도와주세요, 제발! 표시기 https://www.mql5.com/ru/code/10067 은 간단한 작업 Expert Advisor로 변환해야 합니다(예:). 행동 원리:

어드바이저가 던져질 쌍에서 값이 0.9570과 같으면 매직 넘버로 0.1랏을 판매하기 위해 시장 주문을 열어야 합니다(어드바이저가 다른 창에서 주문을 혼동하지 않도록), 중지 손실 100p., 이익 200p.

어디에도 없는 전문가!



초보자를 도와주세요!
 

kolyango :

어드바이저가 던져질 쌍에서 값이 0.9570과 같으면 매직 넘버로 0.1랏을 판매하기 위해 시장 주문을 열어야 합니다(어드바이저가 다른 창에서 주문을 혼동하지 않도록), 중지 손실 100p., 이익 200p.

초보자를 도와주세요!
일회성 전문가 고문을 작성하는 요점은 무엇입니까? 지연을 설정하면 원하는 대로 자체적으로 작동합니다. 그리고 당신의 조언자를 마법으로 설정하십시오. 왜냐하면 지연은 마법이 0이 됩니다.
[Deleted]  
Reshetov :
일회성 전문가 고문을 작성하는 요점은 무엇입니까? 지연을 설정하면 원하는 대로 자체적으로 작동합니다. 그리고 당신의 조언자를 마법으로 설정하십시오. 왜냐하면 지연은 마법이 0이 됩니다.

지표에서이 작업을 수행하는 방법을 이해해야합니다 ...
[Deleted]  

무엇이 잘못되었는지 말해줘? 문제는 선을 넘을 때 항상 주문을 여는 것은 아니라는 점, 즉 가끔 열리기도 하고 안 열리기도 하고... 같은 원리로 작동하지만...

 //+------------------------------------------------------------------+
//|                                                      Вайкофф.mq4 |
//|                                                   Sergey Kodolov |
//|                                              84232676421@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Kodolov"
#property link       "84232676421@mail.ru"



int total,sum,sumr;  
datetime TimeBarH, TimeBarL;

int Crossed ( double nach, double kon, double cenaniz, double cenaverh)
{
   static int last_dir = 0 ;
   static int cur_dir = 0 ;
   
   if (nach<cenaverh && kon>cenaverh)cur_dir= 1 ;
   if (nach>cenaniz && kon<cenaniz)cur_dir= 2 ;
   
   if (cur_dir != last_dir)
   {
      last_dir=cur_dir;
       return (last_dir);
   }
   else
       return ( 0 );
}


  
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }

  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
                     
bool NewBar = New(); //работаем только с нового бара

int volot = volotilnost(NewBar); //определяем волотильность
Hfr(NewBar,volot); //определяем фрактал верхний
Lfr(NewBar,volot); //определяем фрактал нижний

       double BuyLine, SellLine;
   
      BuyLine = ObjectGet ( "upline" ,OBJPROP_PRICE1);
      SellLine = ObjectGet ( "downline" ,OBJPROP_PRICE1);

int isCrossed = Crossed(Open[ 0 ],Bid,SellLine,BuyLine); //говорит о пересечении баром линии
OrderOpenFunction(isCrossed);



//----
   return ( 0 );
  }
//+------------------------------------------------------------------+


bool New()
{
   static datetime lastbar = 0 ;
   datetime curbar = Time[ 0 ];
   //Print("lastbar = ",lastbar," curbar = ",curbar);
   if (lastbar!=curbar)
   {
      lastbar = curbar;
       //Print("ypa");
       return (true);
   }
   else
       return (false);
}

int volotilnost ( bool NewBar)
{
   if (NewBar == true)
   {
       for ( int i= 0 ;i<=kolbar;i++)
      {
         sum = sum + MathAbs (High[i]-Low[i])* 1000 ;
         //Print(sum);
      }
      sumr = sum/kolbar;
       Print (sumr);
       return (sumr);
   }   
}

void Hfr( bool NewBar, int volot)
{
   if (NewBar == true)
   {
       if (volot > kolbarv)
      {
         if ( iHigh ( Symbol (),TF, 5 )< iHigh ( Symbol (),TF, 4 ))
         {
             if ( iHigh ( Symbol (),TF, 4 )< iHigh ( Symbol (),TF, 3 ))
            {
               if ( iHigh ( Symbol (),TF, 2 )< iHigh ( Symbol (),TF, 3 ))
               {
                   if ( iHigh ( Symbol (),TF, 1 )< iHigh ( Symbol (),TF, 2 ))
                  {
                     ObjectDelete ( "upline" );
                     ObjectCreate ( "upline" , OBJ_HLINE , 0 , 0 ,( iHigh ( Symbol (),TF, 3 )));
                     TimeBarH = iTime ( Symbol (),TF, 3 );
                  }
               }
            }
         }
      }   
   }   
}
         

void Lfr( bool NewBar, int volot)
{
   if (NewBar == true)
   {
       if (volot > kolbarv)
      {
         if ( iLow ( Symbol (),TF, 5 )> iLow ( Symbol (),TF, 4 ))
         {
             if ( iLow ( Symbol (),TF, 4 )> iLow ( Symbol (),TF, 3 ))
            {
               if ( iLow ( Symbol (),TF, 2 )> iLow ( Symbol (),TF, 3 ))
               {
                   if ( iLow ( Symbol (),TF, 1 )> iLow ( Symbol (),TF, 2 ))
                  {
                     ObjectDelete ( "downline" );
                     ObjectCreate ( "downline" , OBJ_HLINE , 0 , 0 ,( iLow ( Symbol (),TF, 3 )));
                     TimeBarL = iTime ( Symbol (),TF, 3 );
                  }
               }
            }
         }
      }   
   }   
}

void OrderOpenFunction( int isCrossed)
{
   total = OrdersTotal ();
   if (total< 1 )
   {
       if (isCrossed == 1 )
      {
         OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , "Покупка" ,Magic, 0 , Green );
      }
       if (isCrossed == 2 )
      {
         OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , "Продажа" ,Magic, 0 , Red );
      }
   }   
}
오류가 isCrossed에 있다고 생각하지만 정확히 어디를 설명할 수는 없습니다... 코드를 어지럽히지 않도록 코드의 일부(배열에 일부 데이터를 저장하는 위치)를 삭제했지만 필요한 경우 또한 기쁨으로 게시 할 것입니다
[Deleted]  
좋은 저녁이에요! 보류중인 구매 제한 주문 을 넣었습니다. 중지가없고 오류 130이 작성되었습니다 !!!! 뭐가 될수 있었는지? 아니면 내가 또 뭔가 잘못하고 있습니까? 말해주세요!
 

여러분, 안녕하세요.

스토캐스틱의 메인 라인과 신호 라인이 교차한다는 사실을 프로그래밍 방식으로 설명하는 방법을 알려주세요.

[Deleted]  

글쎄, 내 생각에는 이런 것

F= iStochastic ( Symbol (), 0 , 5 , 3 , 3 , MODE_SMA , 1 ,MODE_MAIN , 0 ) ;
   SIGNAL= iStochastic ( Symbol (), 0 , 5 , 3 , 3 , MODE_SMA , 1 ,MODE_SIGNAL , 0 ) ;
   if (F==SIGNAL) {Урра!!!!; }
[Deleted]  

한 가지 더 질문, 왜 프로그램은 실제로 존재하지 않는데 객체가 존재한다고 작성합니까(모니터만 보고 객체가 명확하게 보이지 않음)

 void DrawLines()
{
   ObjectCreate ( "line1" , OBJ_TREND , 0 ,ArrayH[ 1 ], iHigh ( Symbol (),TF, iBarShift ( Symbol (),TF,ArrayH[ 1 ])),ArrayH[ 2 ], iHigh ( Symbol (),TF, iBarShift ( Symbol (),TF,ArrayH[ 2 ])));
   Print ( GetLastError ());
}

ArrayH[1] 코드에서 iBarShift ( Symbol (),TF,ArrayH[ 1 ]) - 막대 번호를 제공합니다. 이 모든 것을 Print()를 통해 살펴보았습니다. 그러나 GetLastError 는 오류 4200을 제공합니다 - 무엇이 무엇인지 이해하지 못합니다 =)

 
kolyango :

지표에서이 작업을 수행하는 방법을 이해해야합니다 ...

표시기에서 아무것도