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

 
Zhunko :
독일 마르크, ecu, 유로가 고려되었습니다. 모두가 알고 있다고 생각했습니다.

그것은 밝혀졌습니다 - 전부는 아닙니다 ... :(

어쩐지 이상하다... 브랜드 - 브랜드가 있다 - 유로가 아니다 ... 글쎄, 신의 축복이 있기를... 붐은 이 사실을 의미한다...

 
Notter :

모든 좋은 사람들에게 좋은 하루

강한 움직임으로 거래에 대한 질문입니다. OrderSend 함수에는 슬리피지 매개변수 (주문 가격에서 최대 슬리피지)가 있습니다. 그 가치에 제한이 있습니까? 아니면 1000포인트 설정이 가능한가요? 값 "0"은 제로 슬리피지를 의미하거나 주문을 열 때 이 매개변수가 고려되지 않음을 의미합니까?

또한, 움직임이 많을 경우 내 클라이언트 단말기에서 보낸 내 시장가 주문이 서버에 도착하여 가격에 관계없이 서버에서 보류 중인 주문이 실행될 때까지 기다리거나, 접수시간? 다시 말해, 브레이크 아웃 중에 충동이 끝나기 전에 주문이 실행될 것이라고 믿을 수 있습니까? 아니면 여전히 수정 시작 시에만 열릴 것입니까?

Slippage - 터미널의 거래 주문 에서 선언된 가격과 서버에서 반환된 가격과의 포인트 차이. 그들이 생각하는 동안 가격이 떨어질 수 있습니다. 강한 움직임으로 서버는 일반적으로 사려 깊음에 빠집니다. 그가 더 사려깊을수록 명시된 가격으로 열 가능성이 줄어들고 따라서 더 수익성이 높은 가격으로 열릴 것입니다. 1000핍의 미끄러짐을 설정하면 이동이 끝날 때... 열릴 것입니다. 이것은 DC에 유리합니다. 그리고 "주방 :)"이 많을수록 서버는 더 오래 "생각"하고 따옴표 등을 던집니다. ...

슬리피지 매개변수를 0으로 설정하면 주문 가격과 서버에서 반환한 가격이 동일한 경우에만 오픈됩니다.

 

새해 복 많이 받으세요!

이론상 하루 중 지정된 시간에 최대값과 최소값을 찾아야 하는 코드를 작성했습니다. 그러나 사실, 뭔가 잘 되지 않습니다. 봐주세요.

 //+------------------------------------------------------------------+
//|                                                     +Session.mq4 |
//|                                       Copyright 2012, silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, silhouette"
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#include <+ChartTrendLineCreate.mqh>

string OpenTime= "00:00" ; // время открытия сессии
string CloseTime= "09:00" ; // время закрытия сессии
int Days= 100 ; // количество расчитываемых дней

//+------------------------------------------------------------------+
string Symb;
int i;
bool Ans;
//+------------------------------------------------------------------+
int init()
  {
   Symb= Symbol ();
   return ( 0 );
  }

int deinit()
  {

   return ( 0 );
  }

int start()
  {
   //+------------------------------------------------------------------+
   datetime Time_OD, H1_OS, H1_CS; 
   int H1_OpenDayShift, H1_OpenSessionShift, H1_CloseSessionShift, Hst, Lst;
   string H1_OD;
   double Maximum, Minimum;
   //+------------------------------------------------------------------+
   for (i= 0 ; i< 100 ; i++) // перебираем дни
    {
     Time_OD=iTime(Symb, PERIOD_D1 ,i); // находим дату открытия выбранного бара
     H1_OpenDayShift=iBarShift(Symb, PERIOD_H1 ,Time_OD, false ); // ...его индекс
     
     H1_OD=TimeToStr(Time_OD,TIME_DATE); 
     
     H1_OS=StrToTime(H1_OD+ " " +OpenTime);
     H1_OpenSessionShift=iBarShift(Symb, PERIOD_H1 ,H1_OS, false ); // ...индекс бара открытия сессии
     H1_CS=StrToTime(H1_OD+ " " +CloseTime);
     H1_CloseSessionShift=iBarShift(Symb, PERIOD_H1 ,H1_CS, false ); // ...индекс бара закрытия сессии
     
     // ... максимум и минимум
     Hst=iHighest(Symb, PERIOD_H1 ,MODE_HIGH,(H1_OpenSessionShift-H1_CloseSessionShift),H1_CloseSessionShift);
     Lst=iLowest(Symb, PERIOD_H1 ,MODE_LOW,(H1_OpenSessionShift-H1_CloseSessionShift),H1_CloseSessionShift);
     Maximum=iHigh(Symb, PERIOD_H1 ,Hst);
     Minimum=iLow(Symb, PERIOD_H1 ,Lst);
     
     ChartTrendLineCreate(H1_OS, Maximum, H1_CS, Maximum, Red);
     ChartTrendLineCreate(H1_OS, Minimum, H1_CS, Minimum, Red);
     
     
    }

   return ( 0 );
  }

 
silhouette :

새해 복 많이 받으세요!

이론상 하루 중 지정된 시간에 최대값과 최소값을 찾아야 하는 코드를 작성했습니다. 그러나 사실, 뭔가 잘 되지 않습니다. 봐주세요.

H1_OpenSessionShift-H1_CloseSessionShift +1 시도
 
Mislaid :
H1_OpenSessionShift-H1_CloseSessionShift +1 시도
감사합니다. 이제 모든 것이 원래대로입니다.
 
예를 들어 4시간마다 고문이 TF D1에 주문하는 방법을 알려주십시오. 이제 이를 위해 수동으로 작은 시간 프레임으로 전환해야 하며 표시기 신호가 D1과 일치하면 주문해야 합니다. 피곤하고 불편합니다.
 
sultonov :
예를 들어 4시간마다 고문이 TF D1에 주문하는 방법을 알려주십시오. 이제 이를 위해 수동으로 작은 시간 프레임으로 전환해야 하며 표시기 신호가 D1과 일치하면 주문을 해야 합니다. 피곤하고 불편합니다.

유수프님 새해 복 많이 받으세요!!!

이렇게 하려면 주문 시간 추적을 포함하여 어드바이저에서 조건을 CLEARLY 설정해야 하며 작업에 포함되도록 H4 TF에서 새 막대 를 제어할 수 있습니다.

귀하의 경우 Expert Advisor가 D1을 사용하여 주문을 개시하라는 신호를 수신하면서 또한 exp 코드에서 명시적으로 설정하는 동안 H4의 계기 차트에 매달리는 것을 방지하는 것은 무엇입니까?

추신 그리고 너? 더 이상 술을 마시지 않습니까?

1월 2일 마당에서 - 쿵, 네 쿵!!! :-)

 

fibo로 TP를 찾아야 하는 함수를 작성했습니다.

 //+-------------------------------------------------------------------------------------+
//| Вычисление ТП по Фибе                                                               |
//+-------------------------------------------------------------------------------------+
double GetProfitByFibo()
{
   double minValue, maxValue;
  
 // if(GetStateMa() == MA_TALKING_LONG)
     if (OrderType() == OP_BUYSTOP)
    {
      maxValue = iHigh( Symbol (),i_ExtremumLookingTF,i_maxValueShiftB);
      minValue = iLow( Symbol (),i_ExtremumLookingTF,i_minValueShiftB);
     
       if ((maxValue - minValue) >= 7 *pt)
      {
       double fibo1618 = NormalizeDouble ((minValue + (maxValue - minValue)* 1.618 ), Digits );
      }
   
    }
  
 // if(GetStateMa() == MA_TALKING_SHORT)
     if (OrderType() == OP_SELLSTOP)
    {
      maxValue = iHigh( Symbol (),i_ExtremumLookingTF,i_maxValueShiftS);
      minValue = iLow( Symbol (),i_ExtremumLookingTF,i_minValueShiftS);
 
       if ((maxValue - minValue) >= 7 *pt)
      {
      fibo1618 = NormalizeDouble ((maxValue - (maxValue - minValue)* 1.618 ), Digits );
      }
          
  }
   return (fibo1618);
}

이 함수의 외부 변수는 다음과 같습니다.

 extern string ___H2 = "_____  Параметры для функции Fibo_TP _____" ;
extern int i_ExtremumLookingTF = 5 ,
           i_maxValueShiftB = 8 ,
           i_minValueShiftB = 3 ,
           i_maxValueShiftS = 3 ,
           i_minValueShiftS = 8 ;

이 기능을 고정된 Take Profit 대신 작업 중인 Expert Advisor에 삽입하면 Expert Advisor가 둔해지기 시작합니다. 무엇이 잘못되었을 수 있습니까?

주기적으로 주문을 수정할 때 TP는 전혀 설정되지 않습니다.

다음은 예를 들어 쇼핑을 위한 기능입니다(이전 수정 기능은 주석 처리했습니다).

 //+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
   int ticket = - 1 ;
   string myNote = "Сов баянул" ;
  
   double price = High[ 1 ] + i_thresholdFromInput*pt;
   double SL = Low[ 1 ] - i_thresholdFromBasedSL*pt ;

   if (price > Ask)
  {
    ticket = OrderSend ( Symbol (),OP_BUYSTOP, 0.1 , NormalizeDouble (price, Digits ),i_slippage, 0 , 0 ,myNote,i_myMagic, 0 ,Navy);
  }
  
   if (ticket > 0 && OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES) == true )
   //  if(!OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(High[1] + i_tp*pt,Digits),0,Navy))
//  Print("GetProfitByFibo() = ", GetProfitByFibo());
       if (!OrderModify(ticket,OrderOpenPrice(), NormalizeDouble (SL, Digits ),GetProfitByFibo(), 0 ,Navy))
     return ( false );
  
   return ( true );
}
 
이중 GetOrderOpenPrice(문자열 sy="NULL", int op=-1, int mn=-1)
{
날짜 시간 t;
이중 r=0;
정수 i, k=OrdersTotal();

if (sy=="0") sy=Symbol();
(i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol()==sy || sy=="")
{
if (OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if (op<0 || OrderType()==op)
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (t<OrderOpenTime())
{
t=주문열기 시간();
r=주문공개가격();
}
}
}
}
}
}
}
반환(r);

}


이 기능 은 마지막 주문의 시작 가격을 확인합니다.

이 함수의 호출자에서 이 조건을 작성하는 방법: 가격이 마지막 주문의 시작 가격에서 75핍만큼 오르거나 내리면 작업을 계속합니다.

 

안녕하세요!

첨부 파일에는 Voldemar의 고문이 있습니다. 유감스럽게도 그는 개인 메시지로 답장을 보내지 않고 있으며 가능한 한 빨리 고문을 수정하고 싶습니다.

주문 개시 조건을 어떻게 변경할 수 있습니까? 이제 Advisor는 롤백 원칙으로 설정되지만 마지막 막대에 따라 열리는 것이 필요합니다. 종가가 시가보다 낮으면 매도가 열리고 그 반대의 경우도 마찬가지입니다.

감사해요

파일: