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

 
주요 작업 중에 사용할 UMPC를 찾고 있습니다. MT4가 이러한 넷북에서 작동하는지 알려주세요 . http://cgi.ebay.com/4-8-TOUCH-LCD-BenQ-S6-HSDPA-UMPC-3G -NETBOOK-XP -/190490113552?pt=Laptops_Nov05&hash=item2c5a187610#ht_15003wt_1139 사진이 너무 많아 링크를 걸었습니다.
 
afirius :
내 주요 작업 중에 사용할 UMPC를 찾고 있습니다. MT4가 이러한 넷북에서 작동하는지 알려주십시오. https://www.mql5.com/go?link=https://www.ebay.com/itm/4 -8-TOUCH -LCD-BenQ-S6-HSDPA-UMPC-3G-NETBOOK-XP-/190490113552?hash=item2c5a187610&pt=Laptops_Nov05[hash]ht_15003wt_1139 링크가 너무 많아서 사진이 너무 많습니다.

 
Sergstuddek :
안녕하세요. 이미 열린(마지막 주문)과 관련하여 보류 중인 주문(중지)을 열 때 프로그램 코드가 어떻게 생겼는지 작성하십시오.


글쎄, 그것은 이미 고전이다. :)

프로그램 코드는 다음과 같아야 합니다.

미결 주문이 있으면 설치 가격을 계산합니다. 또한 이 가격에 특정 거리를 추가합니다(음수일 수 있음). 보류 중인 주문 이 배치되는 수준을 얻습니다. 다음으로, 보류 중인 주문이 없는지 확인함과 동시에 보류 중인 주문까지의 거리가 최소 허용 가능한 것 이상인지 확인한 다음 이 수준에서 보류 중인 주문을 넣습니다. 모든 것. 코드는 다음과 같아야 합니다.

귀하의 요청이 충족되었습니까?

 
텍스트나 다른 파일로 원하는 최적화 매개변수를 MT4 테스터에 입력할 수 있습니까?
 
Sergey_Rogozin :
텍스트나 다른 파일로 원하는 최적화 매개변수를 MT4 테스터에 입력할 수 있습니까?
코드베이스에서 자동 최적화 프로그램 찾기
 

이 기사에 익숙하고 자동 최적화 프로그램을 실행하려고 시도했지만 작동하지 않았습니다.

지식 부족.

더 빠른 것이 필요합니다.

그러나 감사합니다.

 
drknn :


글쎄, 그것은 이미 고전이다. :)

프로그램 코드는 다음과 같아야 합니다.

미결 주문이 있으면 설치 가격을 계산합니다. 또한 이 가격에 특정 거리를 추가합니다(음수일 수 있음). 보류 중인 주문이 배치되는 수준을 얻습니다. 다음으로, 보류 중인 주문이 없는지 확인함과 동시에 보류 중인 주문까지의 거리가 최소 허용 가능한 것 이상인지 확인한 다음 이 수준에서 보류 중인 주문을 넣습니다. 모든 것. 코드는 다음과 같아야 합니다.

귀하의 요청이 충족되었습니까?

+10 좋은 낚싯대... :)

이제 이벤트 개발을위한 두 가지 옵션이 있습니다. 사람은이 알고리즘에 따라 코드를 작성하고 사례에 대해 질문하거나 이것이 코드가 아니라 알고리즘임을 나타내며 준비된 솔루션을 기다릴 것입니다 ... :)

 
sergeev :

보류 중인 바이스톱/셀스톱 주문이 필요합니다.

아니면 기존 주문에 손절매가 필요합니까?


첫 번째 옵션: 대기 중인 바이스톱/셀스톱 주문.

제가 보고 이해할 수 있도록 기본 템플릿 타입 코드를 작성해주세요.

 
drknn :


글쎄, 그것은 이미 고전이다. :)

프로그램 코드는 다음과 같아야 합니다.

미결 주문이 있으면 설치 가격을 계산합니다. 또한 이 가격에 특정 거리를 추가합니다(음수일 수 있음). 보류 중인 주문이 배치되는 수준을 얻습니다. 다음으로, 보류 중인 주문이 없는지 확인함과 동시에 보류 중인 주문까지의 거리가 최소 허용 가능한 것 이상인지 확인한 다음 이 수준에서 보류 중인 주문을 넣습니다. 모든 것. 코드는 다음과 같아야 합니다.

귀하의 요청이 충족되었습니까?


클래식은 좋지만 어쨌든 문제가 있습니다))))

이론적으로는 이해하지만 실제로는 작동하지 않습니다. 제 코드를 보고 무엇이 잘못되었는지 말할 수도 있습니다.

 #property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
// Суть советника в том что сначала он открывает первый ордер на покупку
// затем выставляет стопы в две стороны
// в одну сторону как продолжене уже открытого ордера
// в другую в два раза больше в случае разворота графика
// стопы выставляются по отношению к последнему открытому советником ордеру
// с каждым новым открытием нового отложеного ордера, все старые удаляються
// а ноые отложеные стопы уже открываются относительно нового открытого ордера.
#define MAGIC  20101012
extern double Lot= 1 ;            // Размер лота
extern int TP= 0 ;                // Тейкпрофит
extern int SL= 0 ;                // СтопЛосс
extern int DS= 0 ;                // Дистанция  для открытия ордера в противоположну сторону
int buys= 0 ,sells= 0 ;
int i= 0 ;
//-----------------------------------------------------
void DeleteStopOrders()
{
  int res;
  for ( int i= 0 ;i< OrdersTotal ();i++)
  {
    if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ;
    if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGIC)
    {
      if (OrderType()==OP_SELLSTOP)
        res=OrderDelete(OrderTicket());
      if (OrderType()==OP_BUYSTOP)
        res=OrderDelete(OrderTicket());
     }
  }
}
        
void OpenBuy()
    
   {
   int tickbuy2  = OrderSend ( Symbol (), OP_BUY, Lot,  NormalizeDouble (Ask, Digits ), 5 , Ask-SL* Point ,Ask+TP* Point , NULL , MAGIC, 0 , Green ); // покупка первого ордера при запуске советника
   }
//+------------------------------------------------------------------+
//| считаем количество открытых ордеров                              |
//+------------------------------------------------------------------+
int CalculateCurrentOrders1( string symbol)
{
   int buys= 0 ,sells= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
      if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ;
      if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGIC)
        {
         if (OrderType()==OP_BUY)  buys++;
         if (OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   return (buys+sells);   
}
//+------------------------------------------------------------------+
//| считаем количество отложеных ордеров                              |
//+------------------------------------------------------------------+
int CalculateCurrentOrders2( string symbol)
{
   int buys= 0 ,sells= 0 ;
//----
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
      if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==false) break ;
      if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGIC)
        {
         if (OrderType()==OP_BUYSTOP)  buys++;
         if (OrderType()==OP_SELLSTOP) sells++;
        }
     }
//---- return orders volume
   return (buys+sells);   
}

int OpenStops()

{ for ( int i= 0 ;i< OrdersTotal ();i++)
{
if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY)   // Проверка на то что открытый ордер на покупку
int ticket;
double LotSize=OrderLots();                                                                                 // Размер лота открытого ордера
double OpenPrice=OrderOpenPrice();                                                                          // Цена открытия открытого ордера
ticket= OrderSend ( Symbol (),OP_SELLSTOP,LotSize* 2 ,OpenPrice-DS* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Red );            // Открытие отложки на продажу в противополжну сторону до открытого ордера   
ticket= OrderSend ( Symbol (),OP_BUYSTOP,Lot,OpenPrice+TP* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Blue );                  // Открытие отложки на покупку в сторону продолжения до открытого ордера

if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL)  // Проверка на то что открытый ордер на продажу
ticket= OrderSend ( Symbol (),OP_SELLSTOP,Lot,OpenPrice-TP* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Red );                  // Открытие отложки на покупку в сторону продолжения до открытого ордера
ticket= OrderSend ( Symbol (),OP_BUYSTOP,LotSize* 2 ,OpenPrice+DS* Point , 0 ,SL* Point ,TP* Point , "" ,MAGIC, 0 , Blue );            // Открытие отложки на покупку в противополжну сторону до открытого ордера
}
}
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (CalculateCurrentOrders1( Symbol ())== 0 )
   OpenBuy();
  if (CalculateCurrentOrders2( Symbol ())<= 1 )
  DeleteStopOrders();
  if (CalculateCurrentOrders2( Symbol ())<= 1 )
   OpenStops();
//----
   return ( 0 );
나는 이것이 단순한 조언자라는 것을 이해하지만 나는 이제 막 여행을 시작하고 있습니다))) 이미 문제가 있습니다
 

지표 질문입니다.

교차 표시기. 한 방향으로 많은 화살표를 그린 다음 다른 방향으로 많이 그립니다. 첫 번째 것만 그려지도록 하는 방법. 코드에 있는 그대로 해봤는데 전환시 타임프레임이 바뀝니다.

제대로 하는 방법을 알려주세요.

 for ( int i=limit- 1 ;i>= 0 ;i--)
   {      
         if ( s == 0 &&    условие продажи)
               {Продажа[i] = High[i]+point* Point ;            
                s= 1 ; b= 0 ;}               
      
         if (b == 0 &&     условие покупки)
        
          
              {Покупка[i] = Low[i]-point* Point ; 
               s= 0 ; b= 1 ;}
   }