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

 
pycha :

여보세요. 설명서를 찾아보았지만 찾지 못했습니다. 질문은 무엇입니다. Expert Advisor를 내 로고로 시작할 때 이 사진을 변경할 수 있습니까?

#속성 아이콘 "\\이미지\\ xxx.ico ";
 
evillive :
#속성 아이콘 "\\이미지\\xxx.ico";

또한, 컴파일 후 아이콘 파일은 *.ex4 파일로 빌드되어 컴파일된 파일 이후에 아이콘 파일을 전송할 필요가 없습니다.
 
고맙습니다)))
 
roymax :
그리고 고쳐지지 않았나요?

보시다시피.

그러나 가장 논리적이고 가장 쉽게 이익을 얻는 방법은 MT 창의 도구를 변경하는 것을 금지하는 것입니다. 따라서 기능으로 고려할 것을 제안합니다. :)

 
그리고 질문 하나 더. 내 전문가는 주어진 개월 수 동안 차트를 분석하고 전체 기록을 분 차트로 반환하는 차트 만 있고 한 달 반 이상을 원하지 않는 차트가 있으며 그 후에도 스크롤 해도 차트를 수동으로 되돌리면 특정 날짜 흔들림을 수동으로 넘어갈 수도 없습니다. 시간별 - 일별 - 연간 차트에는 동시에 모든 것이 있습니다. 어떻게든 메타트레이더가 원하는 가치를 제공하도록 설득할 수 있습니까?
 
pycha :
그리고 질문 하나 더. 내 전문가는 주어진 개월 수의 차트를 분석하는데 분 차트로 전체 기록을 반환하는 차트만 있고 한 달 반 이상을 원하지 않는 차트가 있으며 그 후에도 스크롤을 해도 차트를 수동으로 되돌리면 특정 날짜 흔들림을 수동으로 넘어갈 수도 없습니다. 시간별 - 일별 - 연간 차트에는 동시에 모든 것이 있습니다. 어떻게든 메타트레이더가 원하는 가치를 제공하도록 설득할 수 있습니까?
얼마나 많은 이야기를 전달할지, 브로커가 결정합니다. 최대 막대 수가 터미널 설정에 설정되어 있고 차트에 막대 가 더 적은 경우 브로커는 더 이상 제공하지 않습니다.
 
이해합니다, 감사합니다
 

친애하는 포럼 사용자 여러분, 안녕하세요. 여기서 부탁을 하고 싶습니다. iEnvelopesOnArray() 함수가 작동하는 코드를 게시할 수 있습니까? 지금까지 그녀를 길들이려는 모든 시도는 실패했습니다. 나는 이것이 개발자의 잘못이라고 생각합니다. 다음은 작업을 확인하는 표시기입니다.

 //+------------------------------------------------------------------+
//|                                            Tester_EnvOnArray.mq4 |
//|     Copyright 2005 г. до нашей эры, MetaQuotes Software Company. |
//|                                              https://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005 г. до нашей эры, MetaQuotes Software Company."
#property link          "https://www.mql4.com"
#property description "Пример индикатора для проверки работы функции iEnvelopesOnArray()"
#property strict

//--- indicator settings
#property   indicator_chart_window
#property   indicator_buffers 2
#property   indicator_color1  Green
#property   indicator_color2  Red

//--- indicator buffers
double      ExtEnvBuffer[];
double      ExtPriceBuffer[];

//--- bars minimum for calculation
#define DATA_LIMIT   100

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ( void )
  {
  IndicatorShortName( "EnvOnArr" );
  
   //--- 1 additional buffer are used for counting.
  IndicatorBuffers( 2 );
  IndicatorDigits( Digits + 2 );
  
   //--- drawing settings
  SetIndexStyle( 0 , DRAW_LINE );
  SetIndexDrawBegin( 0 , DATA_LIMIT);
  
  SetIndexStyle( 1 , DRAW_NONE );
  SetIndexDrawBegin( 1 , DATA_LIMIT);
  
   //--- all indicator buffers mapping
   SetIndexBuffer ( 0 , ExtEnvBuffer);
   SetIndexBuffer ( 1 , ExtPriceBuffer);
  
   //--- name for DataWindow and indicator subwindow label
  SetIndexLabel(0, NULL );
  SetIndexLabel( 1 , NULL );
  }
  
//+------------------------------------------------------------------+
//| EnvelopesOnArray                                                 |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
   int     i, limit;
   double prev = 0.0 , Deviation = 1 ;
  
   //--- check for rates total
   if (rates_total <= DATA_LIMIT)
     return ( 0 );
    
   //--- last counted bar will be recounted
  limit = rates_total - prev_calculated;
  
   if (prev_calculated > 0 )
    {
    limit++;
    }
    
   //--- price counted in the 2-nd additional buffer
   for (i= 0 ; i<limit- 1 ; i++)
    ExtPriceBuffer[i] = close[i];
                       
   //--- price counted in the 1-st additional buffer
   for (i= 0 ; i<limit- 1 ; i++)
    ExtEnvBuffer[i] = iEnvelopesOnArray(ExtPriceBuffer, 0 , 5 , MODE_SMA , 0 , 1 , MODE_UPPER, i);
  
   //--- done
   return (rates_total);
  }
  
//+------------------------------------------------------------------+
파일:
 

안녕하세요. 테스트 중에 오류가 나타납니다.

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD, H4: OrderModify 기능 에 대한 유효하지 않은 티켓

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD,H4: OrderModify 오류 4051

여러 번 확인했는데 오류가 없습니다(내가 보기에).

프로그램의 이 부분에서 오류가 발생합니다.

ModifyBuy, ModifySell, SelectBuy, SelectSell, - 유형이 bool입니다.

SendBuy, SendSell-int, int TP = 30


while(true)

 {

  

  SPREAD=MarketInfo(Symb,MODE_SPREAD);

  SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);//buy

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<NormalizeDouble(Ask,Digits))

  {

  ModifyBuy=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(10-SPREAD)*Point,Bid+(30- SPREAD)*Point,0,0); 

  R=1;

  break;

  }//if2

    

  Timen=OrderCloseTime();

  if(Timen>0)

  {

  //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();//значение Long2

   StopLoss_Func();//значение SL

//--------------------------  

   SendBuy=OrderSend(Symb,OP_BUYSTOP,Lote,Ask+Long2*Point,1,Bid-SL*Point,NULL);

   for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==4)

      {

      OrderTicketBuy=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue;  

  }//if2

  

  SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET,MODE_TRADES);//sell

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()-TP*Point,Digits)>NormalizeDouble(Bid,Digits))

  {

   

   ModifySell=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(10-SPREAD)*Point,Ask-(30- SPREAD)*Point,0,0);

   R=2;

   break; //спред

  }//if2

  

   Timen=OrderCloseTime();

  if(Timen>0)

  {

 //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();

   StopLoss_Func();

//--------------------------  

   SendSell=OrderSend(Symb,OP_SELLSTOP,Lote,Bid-Long2*Point,1,Ask+SL*Point,NULL);

    for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==6)

      {

      OrderTicketSell=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue; 

  }//if2

}//while1



전체 코드가 필요한 경우 여기


파일:
test3_1.mq4  15 kb
 
신사 여러분! 포지션을 열 수 있는 여백이 충분하지 않으면 어드바이저 테스트 를 중단하는 코드를 알려주십시오.
고맙습니다!