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

 

추가 도와주세요. 수평 이동
그리고 수직
엉덩이도 일하면 ........... 부리

 //+------------------------------------------------------------------+
//|                                                Price Channel.mq4 |
//+------------------------------------------------------------------+



#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 DodgerBlue
//---- input parameters
extern int ChannelPeriod = 14 ;
//---- buffers
double UpBuffer[];
double DnBuffer[];
double MdBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexStyle( 1 , DRAW_LINE );
   SetIndexStyle( 2 , DRAW_LINE );
   SetIndexBuffer ( 0 , UpBuffer);
   SetIndexBuffer ( 1 , DnBuffer);
   SetIndexBuffer ( 2 , MdBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name= "Price Channel(" +ChannelPeriod+ ")" ;
   IndicatorShortName(short_name);
   SetIndexLabel( 0 , "UpCh" );
   SetIndexLabel( 1 , "DownCh" );
   SetIndexLabel( 2 , "MidCh" );
//----
   SetIndexDrawBegin( 0 , ChannelPeriod);
   SetIndexDrawBegin( 1 , ChannelPeriod);
   SetIndexDrawBegin( 2 , ChannelPeriod);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Price Channel                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i, counted_bars = IndicatorCounted();
   int     k;
   double high, low, price;
//----
   if ( Bars <= ChannelPeriod) 
       return ( 0 );
//---- initial zero
   if (counted_bars < 1 )
       for (i = 1 ;i <= ChannelPeriod; i++) 
          UpBuffer[ Bars -i] = 0.0 ;
//----
   i = Bars - ChannelPeriod - 1 ;
   if (counted_bars >= ChannelPeriod) 
       i = Bars - counted_bars - 1 ;
   while (i >= 0 )
     {
       high = High[i]; 
       low = Low[i]; 
       k = i - 1 + ChannelPeriod;
       while (k >= i)
         {
           price = High[k];
           if (high < price) 
               high = price;
           price = Low[k];
           if (low > price)  
               low = price;
           k--;
         } 
       UpBuffer[i] = high;
       DnBuffer[i] = low;
       MdBuffer[i] = (high + low) / 2 ;
       i--;
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
splxgf >> :

에서 즉시 핫 스타트를 할 수 있습니다.

초기화(){

동안 (사실) {

//영원한 하이

}

splxgf 감사합니다. 시도했지만... 글쎄, 우리는 더 나은 시간이 될 때까지이 아이디어를 남겨 두어야 할 것 같습니다. 또는 내 생각에 많은 전문가의 유용한 개정판에 다른 누군가가 관심을 보일 것입니다.

 
hedger писал(а) >>

splxgf 감사합니다. 시도했지만... 글쎄, 우리는 더 나은 시간이 될 때까지이 아이디어를 남겨 두어야 할 것 같습니다. 또는 내 생각에 많은 전문가의 유용한 개정판에 다른 누군가가 관심을 보일 것입니다.


그것을하는 방법을 참조하십시오
정수 시작()
{
동안(사실)
{
수면(5000); // 다음 반복까지 5초 지연
새로 고침(); // 데이터 업데이트
// 나머지 코드. 개봉, 폐쇄 등의 조건
}
}
 
Djonon >> :

추가 도와주세요. 수평 이동
그리고 수직
엉덩이도 일하면 ........... 부리

 extern int Сдвиг_по_горозинтали = 14 ; //КОЛ-ВО БАРОВ
extern int и_вертикали = 14 ; //КОЛ-ВО ПУНКТОВ
파일:
 
hedger >> :

주문을 마감하기 위해 JimsCloseOrders EA 를 사용합니다. 이 두 줄의 코드에서 수익성이 있거나 없는 모든 주문 또는 연속된 모든 주문을 마감할 수 있습니다. 약간 조정해야 하지만

외부 부울 CloseOpenOrders = true;

외부 부울 CloseOrdersWithPlusProfit = 거짓;

거짓 그리고 사실 장소를 바꿔야 합니다. 그렇지 않으면 차트에 설치할 때 이러한 설정이 수행되면 어떤 이유로 모든 주문을 닫기 시작합니다(프로그램에 의한 명령 실행 순서로 인해 분명하지만 확실하지 않습니다. , 특별하지 않음).

프로에게 질문이 있습니다 .

예를 들어 위에서 언급한 어드바이저를 가능한 한 빨리 시작해야 하지만 모든 어드바이저와 스크립트는 차트에 첫 번째 눈금이 도착하는 순간부터 작동하기 시작합니다. Expert Advisor를 설치하기 위해 선택한 통화 쌍이 그 순간에 "활성화"되지 않은 것으로 판명되면 손실이 상당할 수 있습니다.

모든 통화에 대한 "일반" 차트를 생성하거나 다른 쌍의 들어오는 틱을 사용할 수 있습니까? 진드기는 거의 지속적으로 터미널에오고 있습니다. 그들은 어디에서 잡을 수 있습니까?

모든 것이 간단합니다.

 int init()
  {
    трали вали..
    start();
  }
초기화 시 즉시 함수 실행
start();
틱 에뮬레이션도 참조하십시오. 하지만 그게 다가 아닙니다...

start()
는 주요 기능입니다. 다음 틱이 도착한 후 Expert Advisors를 위해 호출됩니다. 지표가 차트에 연결된 후 재계산할 때, 클라이언트 터미널을 열 때(지표가 차트에 연결된 경우), 다음 틱이 도착한 후에도 사용자 지정 지표에 대해 호출됩니다. 스크립트의 경우 차트에 첨부하고 초기화를 수행한 직후에 실행 됩니다. 모듈에 start() 함수가 포함되어 있지 않으면 이 모듈(EA, 스크립트 또는 사용자 지정 표시기)을 시작할 수 없습니다.
 
정수 시작()
{
이중 입찰 =MarketInfo("GBPUSD",MODE_BID);
이중 요청 =MarketInfo("GBPUSD",MODE_ASK);
더블 포인트 =MarketInfo("GBPUSD",MODE_POINT);
OrderSend("GBPUSD",OP_BUY,0.01,ask,2,bid-15*포인트,bid+15*포인트);
경고( GetLastError() );
반품;
}

나는 교과서에서 이 스크립트를 가져왔고 그것이 어떻게 작동하는지 보고 싶었습니다. 나는 그것을 편집하고 저장했습니다. 나는 달린다 - 소용없었다, 왜?
오류가 발생하지 않고 작동하지 않습니다 ...
 
주님. 모두 좋은 저녁입니다. 나는 언어를 마스터하는 데 전혀 성공하지 못했습니다. (((((((()
그래서 모든 것은 "poke" 방법으로 이루어지며 일반적으로 많은 조언자들로부터 무언가를 리메이크 할 수 있지만 특정 무언가를 추가해야 할 때 그것은 모두 어리 석음 ... (((
바로 지금...
Expert Advisor에서 다음 줄을 만들고 싶습니다.
여는 알고리즘이 있고, 수익이 있고, 어떤 결과가 나오든 일정 시간 후에 닫고 싶습니다.
이제 추가하는 방법????????????
이 시간은 Expert Advisor에서도 구성할 수 있습니다. 예를 들어, 거래가 2시간, 3시간 또는 4시간 내에 종료되도록 ... 예를 들어 보도 자료의 시간에 따라 다릅니다. 글쎄, 나는 당신이 나를 이해한다고 생각합니다.
누군가가 알고 있다면 포럼에 이미 그러한 질문이 있었을 수 있습니다. 최소한 링크를 던져주십시오. 나는 고급 프로그래머를 위해 쓰여진 교과서에서 신경 만 읽으려고 노력했습니다. 음, 확실히 여성용은 아닙니다.
그리고 누군가에게 어렵지 않고 사소한 일처럼 보이면 라인을 작성하고 최소한 붙여 넣을 것입니다. 그러면 아마도 뭔가가 잘 될 것입니다.
큰 여자 제발 .......
 
Magiyanka >> :
Господа. Всем добрый вечер. У меня прям совсем ничего не получается в освоении языка. (((((((

 extern int Час= 2 ; //В начало кода
extern int Мин= 6 ;
extern int Slippage  =   25 ;
extern int STUPID= 12830454 ;
 //В конец кода отдельной функцией
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
void OrdersCloseByTime( int MagicNumber)
{
   for ( int i = 0 ; i < OrdersTotal (); i++)
   {
       // already closed
       if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES ) == false) continue ;
       // not current symbol
       if (OrderSymbol() != Symbol ()) continue ;
       // order was opened in another way
       if (OrderMagicNumber() != MagicNumber) continue ;
       if (Time[ 0 ]-OrderOpenTime( )>=Час* 60 * 60 +Мин* 60 ){
         if (OrderType() == OP_SELL)
        OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Ask, Digits ), Slippage, Red );
         if (OrderType() == OP_BUY)
        OrderClose(OrderTicket(), OrderLots(), NormalizeDouble (Bid, Digits ), Slippage, Blue );
        }
   }
   
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
int start()
{
 OrdersCloseByTime(STUPID);//STUPID это мажик номер Вашего советчика
 трали вали ...
정시에 마감하는 포지션, 잃어버리지 않도록 어디에 넣어야 할까?!
 
Lim1 >> :

정수 시작()
{
이중 입찰 =MarketInfo("GBPUSD",MODE_BID);
이중 요청 =MarketInfo("GBPUSD",MODE_ASK);
더블 포인트 =MarketInfo("GBPUSD",MODE_POINT);
OrderSend("GBPUSD",OP_BUY,0.01,ask,2,bid-15*포인트,bid+15*포인트);
경고(GetLastError());
반품;
}

나는 교과서에서 이 스크립트를 가져왔고 그것이 어떻게 작동하는지 보고 싶었습니다. 나는 그것을 편집하고 저장했습니다. 나는 달린다 - 소용없었다, 왜?
오류가 발생하지 않고 작동하지 않습니다 ...

이 시도.

 int start()
{
double bid =MarketInfo( "GBPUSD" ,MODE_BID);
double ask =MarketInfo( "GBPUSD" ,MODE_ASK);
double point =MarketInfo( "GBPUSD" ,MODE_POINT);
int tickkkkkkk= OrderSend ( "GBPUSD" ,OP_BUY, 1 ,ask, 2 ,bid- 15 * Point ,bid+ 15 * Point );
if (tickkkkkkk==- 1 ){
 Alert ( "Ошибка № "+ GetLastError ());
 if ( GetLastError ()== 131 )
 Alert ( "Неправильный объем" );
 if ( GetLastError ()== 6 )
 Alert ( "Нет связи с торговым сервером" );
 }
 else Alert ( "Все ОК!!!" );
return ;
}
 
작동하지 않고 제 시간에 닫히지 않습니다.
사유: