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

 
Ekburg :

글쎄, 나는 확실히 당신을 위해 문제가 해결되기 시작했다는 것을 기쁘게 생각합니다. 그러나 어떤 이유로 당신은 내 메시지를 눈치 채지 못했습니다. 내가 같은 것을 약간 다른 말로 말하고 즉시 단점에 대해 말했습니다. 파일을 닫을 때 어디에서 발생하는지 즉시 보지 못했습니다. :)

책에 대해 보낼 곳을 말하지 않았습니까?
 
Vinin :

책에 대해 보낼 곳을 말하지 않았습니까?


바로 그거죠! 명절이라 깜빡했어요! :) 다시한번 상기시켜주셔서 감사합니다!

 
Vinin :

책에 대해 보낼 곳을 말하지 않았습니까?

PM 메일에 썼다
 
주어진 시간에 베팅할 수 있는 최소 TP를 찾는 방법을 알려주십시오.
 
Trader7777 :
주어진 시간에 베팅할 수 있는 최소 TP를 찾는 방법을 알려주십시오.

int STOPLEVEL= MarketInfo (NULL, MODE_STOPLEVEL );
 
감사) 시장 정보를 알고 함수에 어떤 매개 변수를 설정할지 몰랐습니다.
 
Trader7777 :
감사) 시장 정보를 알고 함수에 어떤 매개 변수를 설정할지 몰랐습니다.
편집기에서 함수 이름 위에 마우스를 놓고 F1 키를 누릅니다. 이 기능에 대한 도움말 정보가 표시됩니다.
 
안녕하세요. 포럼에서 찾을 수 없어 여기에 게시합니다. 나는 훈련 고문을 기반으로 새로운 것을 얻으려고합니다. 예를 들어 Expert Advisor는 MA의 교차점에서 거래합니다. 기간이 다른 두 조각. 느린 MA와 빠른 MA. 빠른 것이 느린 것을 아래에서 위로 교차할 때 매수하고, 반대의 경우 위에서 아래로 매도하십시오. 거래 의 결과를 추가로 추적할 수 있도록 표준 거래 조건에 묶고 싶습니다. 위치가 손실 또는 0과 함께 손절매로 마감된 경우 고문은 즉시 반대 위치를 열고 다음 교차를 기다리지 않습니다. 다시 말해서, 우리는 매수 포지션을 열고 손절매에 손실을 입었고(음, 시장은 우리가 원하는 방향으로 가지 않았습니다) 즉시 손절매 수준에서 판매를 위해 열었습니다. 그런 조언자가 여전히 고갈될 것이라는 것을 알고 있지만 여기서는 어떤 종류의 코드를 작성해야 하는지 이해하고 싶습니다. 전문가가 도움이 되길 바랍니다. 미리 감사드립니다.
 
petya33r :
안녕하세요. 포럼에서 찾을 수 없어 여기에 게시합니다. 나는 훈련 고문을 기반으로 새로운 것을 얻으려고합니다. 예를 들어 Expert Advisor는 MA의 교차점에서 거래합니다. 기간이 다른 두 조각. 느린 MA와 빠른 MA. 빠른 것이 느린 것을 아래에서 위로 교차할 때 매수하고, 반대의 경우 위에서 아래로 매도하십시오. 거래의 결과를 추가로 추적할 수 있도록 표준 거래 조건에 묶고 싶습니다. 위치가 손실 또는 0과 함께 손절매로 마감된 경우 고문은 즉시 반대 위치를 열고 다음 교차를 기다리지 않습니다. 다시 말해서, 우리는 매수 포지션을 열고 손절매에 손실을 입었고(음, 시장은 우리가 원하는 방향으로 가지 않았습니다) 즉시 손절매 수준에서 판매를 위해 열었습니다. 그런 조언자가 여전히 고갈될 것이라는 것을 알고 있지만 여기서는 어떤 종류의 코드를 작성해야 하는지 이해하고 싶습니다. 전문가가 도움이 되길 바랍니다. 미리 감사드립니다.

손절매 수준에서 반대 방향으로 보류 주문 을 넣으십시오.
 
evillive :

손절매 수준에서 반대 방향으로 보류 주문을 넣으십시오.


지체없이 부탁드리겠습니다. 인터넷에서 나는 그러한 고문 코드를 파헤쳤습니다. 손실을 입으면 반대 포지션이 열리지만 두 MA에 대한 거래 조건으로 교차할 수 없습니다.

 #property copyright "Copyright © 2013, MoneyInNetwork.ru"
#property link        "http://moneyinnetwork.ru"
extern string s1 = "Объем для первой сделки серии, лот" ;
extern double Lot = 0.1 ;
extern string s2 = "Уровень стоп-лосса, пипсов" ;
extern double stoploss = 100 ;
extern string s3 = "Уровень тейк-профита, пипсов" ;
extern double takeprofit = 500 ;
extern string s4 = "Уникальная метка для ордеров, открываемых только этим советником" ;
extern double MagicNumber = 600 ;
extern string s5 = "Максимальное отклонение от запрошенной цены, пипсов" ;
extern double slip = 15 ;
 
int init()
{
   return ( 0 );
}
 
int deinit()
{
   return ( 0 );
}
 
int start()
{ 
   //инициализация параметров
   int ticket = 0 ;
   int old_order_type = OP_SELL ;
 
   //ищем среди всех открытых ордеров открытый советником ордер 
   RefreshRates ();
   for ( int trade = OrdersTotal () - 1 ; trade >= 0 ; trade-- ) 
  {
       //проверяем есть ли среди всех открытых ордеров именно тот ордер, который открыт данным советником.
       if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES ) && ( OrderType () == OP_BUY || OrderType () == OP_SELL ) && OrderMagicNumber () == MagicNumber && OrderSymbol () == Symbol () )
      {
           //если есть незакрытый ордер - выходим
           return ( 0 );        
      }
  }
   //нет открытых ордеров - ищем в истории закрытых ордеров последний закрытый именно этим советником ордер 
   for ( trade = OrdersHistoryTotal () - 1 ; trade >= 0 ; trade-- ) 
  {
     if ( OrderSelect (trade, SELECT_BY_POS , MODE_HISTORY ) && OrderMagicNumber () == MagicNumber && OrderSymbol () == Symbol () )
     {
         old_order_type = OrderType ();
         if ( OrderProfit ()< 0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком
         {
                 break ; //прекращаем поиск
         }
     }
  }
   //если раньше покупали, то теперь продаем
   if ( old_order_type == OP_BUY )
  {
      ticket = OrderSend ( Symbol (), OP_SELL , Lot,   NormalizeDouble ( Bid , Digits ), slip, NormalizeDouble ( Ask +stoploss* Point , Digits ), NormalizeDouble ( Ask -takeprofit* Point , Digits ), "Martingale-Sell" , MagicNumber, 0 , Red);
       Sleep ( 2000 ); //задержка в 2 секунды для обработки запроса торговым сервером брокера
       return ( 0 );  
  }
   //если раньше продавали, то теперь покупаем
   if ( old_order_type == OP_SELL )
  {
      ticket = OrderSend ( Symbol (), OP_BUY , Lot, NormalizeDouble ( Ask , Digits ), slip, NormalizeDouble ( Bid -stoploss* Point , Digits ), NormalizeDouble ( Bid +takeprofit* Point , Digits ), "Martingale-Buy" , MagicNumber, 0 , Green);
       Sleep ( 2000 ); //задержка в 2 секунды для обработки запроса торговым сервером брокера
       return ( 0 );  
  }               
}