MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 200

 
STARIJ :

Artem, 또는 그것은 당신의 눈에 거슬리지 않는 트롤링입니까, 아니면 당신 자신이 무엇에 대해 쓰고 있는지 이해하지 못합니다 !!!

지난 포스트에서 정렬에 대해 이야기했습니다. 정렬에 의존하지 않는다고 설명했습니다.

시간순으로 주문을 선택하는 것에 대한 토론을보고 그 중 하나에 참여했습니다. 이제 주문이 서버로 전송될 때 주문 데이터베이스에 있다는 결론이 내려졌습니다. 그러나 이론적으로 개발자가 이것을 변경할 수 있다는 두려움이 있습니다. 이것으로 토론이 끝났습니다. 데이터베이스 전문가로서 저는 이러한 두려움이 근거가 없으며 변경 사항이 의심의 여지가 없음을 확신합니다. 이 질문에 대해 개발자에게 문의할 수 있습니다. 내가 뭔가를 쓴다면, 나는 내가 무엇을 쓰고 있는지 안다. 프로그래밍 50주년이 다가오고 있습니다. 내 게시물에서 당신의 관점에서 어떤 종류의 것을 알아차린다면 개인적인 글을 쓰 십시오. 설명을 드리면 궁금증이 풀릴 것입니다. 그리고 여기에서 다투는 것은 거의 적절하지 않습니다. 한 남자에게 대본을 썼습니다. 그는 고맙다고 말했습니다. 좋은가요?

그것이 rraz 모든 사람들이 생각한 방식이며 갑자기 정렬에 대한 의존성이 있다는 사실에 부딪쳤습니다 . 사람들은 논리를 잃었습니다. 그런 다음 다시 정렬에 대한 의존도가 사라졌습니다. 그러나 결국 이미 있었다. 프로그램에 의존하지 않고 가상의 정렬 변경에 의존하고 싶다면 - 당신의 권리이지만 초보자의 도움말 스레드에는 그런 권리가 없습니다 - 스크립트를 제공하고 언젠가는 충돌할 수 있다는 언급은 하지 마십시오. 6~7년 전 mql4.com에서 이러한 토론을 찾아보십시오.

그래서 제가 언급 했습니다. 그 남자는 손실이 아니라 손절매에 대해 이야기하고 있었습니다.

감사합니다. 예의바르지만 사실인지 아닌지는 모릅니다.)

 
Artyom Trishkin :

그래서 제가 언급 했습니다. 그 사람은 손실이 아니라 손절매 에 대해 이야기하고 있었습니다.

감사합니다. 그는 예의 바르지만 그것이 사실인지 아닌지는 모릅니다.)

그 사람이 쓴 글을 잘 보세요

X = OrderProfit ( );         // запомнить величину тейкпрофита

if ( OrderSelect (Ht- 1 , SELECT_BY_POS , MODE_HISTORY ))     // если ПОСЛЕДНИЙ ордер                  
if ( OrderType ()== OP_SELL )   // СЕЛ

if (X < 0 )                 // и если этот сел закрылся по стопу 

그는 명령을 잃는 것을 의미했습니다. 그래서 그는 중지를 이해합니다. 손절매 라는 단어가 빠졌습니다

나는 또한 stopLoss와 TakeProfit의 일반화된 이름인 stops를 그에게 쓰고 싶었습니다. 이를 확인하려면 MetaEditor 130을 입력하고 F1을 누르십시오.

피트. 복수로.

나는 여기서 일하고, 당신은 나를 산만하게합니다.

datetime --> TimeToStruct --> MqlDateTime 이제 어떻게 datetime으로 돌아가나요???

 
STARIJ :

그 사람이 쓴 글을 잘 보세요

그는 명령을 잃는 것을 의미했습니다. 그래서 그는 중지를 이해합니다. 손절매 라는 단어가 누락되었습니다.

나는 또한 stopLoss와 TakeProfit의 일반화된 이름인 stops를 그에게 쓰고 싶었습니다. 이를 확인하려면 MetaEditor 130을 입력하고 F1을 누르십시오.

피트. 복수로.

난 여기서 일해, 넌 날 방해해

datetime --> TimeToStruct --> MqlDateTime 이제 어떻게 datetime으로 돌아가나요???

 if (X < 0 )                 // и если этот сел закрылся по стопу 

시간 구조()

 
виталик : 시간별 차트에 고가와 저가의 선을 그었습니다.
 //+-------------------------------------------------------+
//| на H1 суточную линию между хая и лоу         PROBA.mq4|
//+-------------------------------------------------------+
#property strict

void OnStart ()
{
   // Удалим все объекты
   ObjectsDeleteAll ();

   string Символ = "GBPUSD" ;
   datetime Первый, Последний;
   int Период= PERIOD_H1 ;

   // Прежде всего узнаем дату и время последнего бара
  Последний = iTime (Символ, Период, 0 );
   Alert ( "Последний бар на часовом  " ,Последний);

   // Теперь получить начало суток, обнулив часы
   // Для этого преобразуем время последнего бара в структуру
   MqlDateTime MqlПервый;
   TimeToStruct (Последний,MqlПервый);
  MqlПервый.hour= 0 ;



   // Терерь надо обратно преобразовать во время
  Первый= StructToTime (MqlПервый);
   Alert ( "Первый бар на часовом  " ,Первый); // Смотрим начало первого бара суток

   // По времени определим номер первого бара суток
   int НомерПервого= iBarShift (Символ, PERIOD_H1 ,Первый);
   Alert ( "Первый бар на часовом под номером " ,НомерПервого);

// Можно было просто узнать время начала бара на D1


  
   // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
   // Найдем на этом интервале номера баров, где макс и мин
   // iHighest и iLowest находят номер бара с макс и мин ценой
   int БарМакс = iHighest (Символ,  // symbol = инструмента
                Период,           // timeframe = Период
                 MODE_HIGH ,         // Наибольшая цена бара
                НомерПервого+ 1 ,   // Количество баров
                 0 );               // Начальный бар

   int БарМин  = iLowest (Символ,
                Период,
                 MODE_LOW ,         // Наименьшая цена бара
                НомерПервого+ 1 ,
                 0 );

   Alert ( "Максимальный бар = " , БарМакс, "  Минимальный бар = " , БарМин);

   // iHigh и iLow дают макс и мин цены указанного бара
   double max_price= iHigh (Символ, Период, БарМакс);
   double min_price= iLow (Символ, Период, БарМин);
   Alert ( "Максимум цены = " , max_price, "  Минимум цены = " , min_price);

   // Проводим линию
   ObjectCreate ( "Макс_Мин" , OBJ_TRENDBYANGLE , 0 , Time [БарМакс], max_price, Time [БарМин], min_price);
   ObjectSet ( "Макс_Мин" , OBJPROP_RAY , false );     // Выключить свойство бесконечного луча

   // Теперь хорошо бы узнать угол
   Alert ( "Угол = " , ObjectGetDouble ( 0 , "Макс_Мин" , OBJPROP_ANGLE ));
}

// 0.0을 반환합니다. 각도를 설정해야 하고 그 다음에야 수신됩니다...
// 따라서 Max와 Min 사이의 가격과 막대의 수의 차이를 알고 각도를 계산해야 합니다.
// 아마도 더 짧을 수 있습니다 ...

 
STARIJ :

// 0.0을 반환합니다. 각도를 설정해야 하고 그 다음에야 수신됩니다...
// 따라서 Max와 Min 사이의 가격과 막대의 수의 차이를 알고 각도를 계산해야 합니다.
// 더 짧을 수도...


거대한 ATP)
 
Artyom Trishkin : StructToTime()
덕분에 찾았습니다. 그는 이미 그것을 사용하고 있음이 밝혀졌습니다. 나는 datetime TimeToStruct MqlDateTime 중 하나에 대한 도움말에서 그것을 볼 것으로 예상했습니다.
 
-Aleks- :

휴, 변수를 추가하는 방법을 알 수 없습니다. 4개의 부울이 있고 이를 반복해야 한다고 가정해 보겠습니다.

나는 문제의 본질을 이해합니다. 나눗셈 후에 0보다 작거나 큰 나머지가 있어야 합니다. 그러나 이것을 달성하는 방법을 알 수 없습니다 :(


부울의 경우 접근 방식이 약간 다릅니다.

 //+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N= 15 ;   //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   for ( int n= 0 ;n<N;n++)
     {
       int tmp=n;
       bool a= ( bool ) MathMod (tmp, 2 );
      tmp=tmp/ 2 ;
       bool b= ( bool ) MathMod (tmp, 2 );
      tmp=tmp/ 2 ;
       bool c= ( bool ) MathMod (tmp, 2 );
      tmp=tmp/ 2 ;
       bool d= tmp;

       Print ( "N=" ,n, "; A=" ,a, "; B=" ,b, "; C=" ,c, "; D=" ,d);
     }

  }

바이너리 인코딩.

이 경우 최대 N은 16보다 작습니다.

나는 당신이 원하는 것을 알 수 없습니다

 
Victor Nikolaev :


부울의 경우 접근 방식이 약간 다릅니다.

바이너리 인코딩.

이 경우 최대 N은 16보다 작습니다.

나는 당신이 원하는 것을 알 수 없습니다

너는 천재 야! 고맙습니다!

16가지 선택지가 있어요

2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=15; A=참; B=참; C=참; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=13; A=참; b=거짓; C=참; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=9; A=참; b=거짓; c=거짓; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=1; A=참; b=거짓; c=거짓; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=5; A=참; b=거짓; C=참; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=3; A=참; B=참; c=거짓; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=11; A=참; B=참; c=거짓; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=7; A=참; B=참; C=참; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=14; A=거짓; B=참; C=참; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=6; A=거짓; B=참; C=참; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=10; A=거짓; B=참; c=거짓; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=2; A=거짓; B=참; c=거짓; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=12; A=거짓; b=거짓; C=참; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=4; A=거짓; b=거짓; C=참; D=거짓
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=8; A=거짓; b=거짓; c=거짓; D=참
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=0; A=거짓; b=거짓; c=거짓; D=거짓

사용하고 싶은 이유 - 내 EA에 여러 필터 및 위치 관리 옵션이 있습니다. - 미니 세트(준비된 조합) 만들기를 포함하여 이들을 서로 결합하고 싶습니다. 결과적으로 분석을 위한 데이터를 받게 됩니다. 샘플에 편향되지 않으면서 결과에 대한 설정의 영향에 대한 인식의 지평을 넓힐 수 있기를 바랍니다. 그 결과는 일련의 결과이며, 자세히 분석하겠습니다. 음, 또 다른 이유가 있습니다. 통계 수집을 위한 클래스가 있는데, 제한된 수의 변수를 파일에 저장하여 자세한 분석을 방해합니다.
 
виталик :

거대한 ATP)

스타지 :

// 0.0을 반환합니다. 각도를 설정해야 하고 그 다음에야 수신됩니다...
// 따라서 Max와 Min 사이의 가격과 막대의 수의 차이를 알고 각도를 계산해야 합니다.
// 아마도 더 짧을 수 있습니다 ...


스크립트에 다시 한 번 감사드립니다. 표시기로 변환했습니다. 한 가지 문제입니다. 하루 이상 표시되도록 반복하는 방법을 알 수 없습니다. 즉, 기록에 표시됩니다. 알려주세요.

 #property indicator_chart_window
extern int boom = 1 ;
//=================================
void fishka( int ma, int mi, double map, double mip) // ф-ция
{
   ObjectCreate ( "Макс_Мин" , OBJ_TRENDBYANGLE , 0 , Time [ma], map, Time [mi], mip); // Проводим линию
   ObjectSet ( "Макс_Мин" , OBJPROP_RAY , false );     // Выключить свойство бесконечного луча
}

int deinit()
  {

 ObjectsDeleteAll (); // Удалим все объекты
   return ( 0 );
  }

void start()
{  
   string Символ = "GBPUSD" ;
   datetime Первый, Последний;
   int Период= PERIOD_H1 ;

  Последний = iTime (Символ, Период, 0 ); // Прежде всего узнаем дату и время последнего бара
 
if (boom){
   Alert ( "Последний бар на часовом  " ,Последний);}
 
  
   MqlDateTime MqlПервый;               // Теперь получить начало суток, обнулив часы
   TimeToStruct (Последний,MqlПервый);   // Для этого преобразуем время последнего бара в структуру
  MqlПервый.hour= 0 ;

  
  Первый= StructToTime (MqlПервый);             // Терерь надо обратно преобразовать во время
if (boom){
   Alert ( "Первый бар на часовом  " ,Первый);}   // Смотрим начало первого бара суток
  
   int НомерПервого= iBarShift (Символ, PERIOD_H1 ,Первый); // По времени определим номер первого бара суток
if (boom){
   Alert ( "Первый бар на часовом под номером " ,НомерПервого);}

// Можно было просто узнать время начала бара на D1

   // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
   // Найдем на этом интервале номера баров, где макс и мин
   // iHighest и iLowest находят номер бара с макс и мин ценой
 int   БарМакс = iHighest (Символ,   // symbol = инструмента
                Период,           // timeframe = Период
                 MODE_HIGH ,         // Наибольшая цена бара
                НомерПервого+ 1 ,   // Количество баров
                 0 );               // Начальный бар

int   БарМин  = iLowest (Символ,Период, MODE_LOW ,НомерПервого+ 1 , 0 ); // Наименьшая цена бара
                               
if (boom){
   Alert ( "Максимальный бар = " , БарМакс, "  Минимальный бар = " , БарМин);}
                                                                           

 
double max_price= iHigh (Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бара
double min_price= iLow (Символ, Период, БарМин);
   
    fishka(БарМакс,БарМин,max_price,min_price); // ф-ция
 if (boom){
   Alert ( "Максимум цены = " , max_price, "  Минимум цены = " , min_price);
 
   Alert ( "Угол = " , ObjectGetDouble ( 0 , "Макс_Мин" , OBJPROP_ANGLE ));} // Теперь хорошо бы узнать угол               
}
 
STARIJ :

아침 4시에 - 오늘은 아직 술집이 거의 없습니다. H4에는 하루에 6개의 바만 있습니다. 검색할 막대의 수 또는 교차점의 수 를 설정해야 합니다.

장거리 = 추세

스크립트로 실행하면 모든 것이 작동하고 코드를 어드바이저로 컴파일하면 모든 라인이 근처에 있으므로 캐치가 무엇인지 이해할 수 없습니다.