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

 

좋은 하루 되세요.

배열을 배우고 있습니다.

배열에서 필요한 값을 제거하는 방법을 알려주십시오.

내가 알기로는 값을 삭제한 후 배열의 크기 가 줄어들고 아마도

배열 크기에 대한 새 값도 지정해야 합니다.

디렉토리에서 배열 값을 삭제하는 함수를 찾지 못했습니다. 전체 과정이 어떻게 보이는지 보여주세요. 배열 값 삭제

제거 후 어레이가 더 기능하도록 합니다.

고맙습니다.

여기에 내가 필요한 것에 대한 구체적인 예가 있습니다.

 int start()                                             
{

double mass[ 3 ]=
{
1.2414 ,
1.2438 ,
1.2874
};

double value =   Bid ;
int S = ArrayBsearch (mass,  value,   WHOLE_ARRAY ,   0 , MODE_ASCEND );

if ( Bid == mass[S]) //Bid = 1.2874
OrderSend ( Symbol (), OP_SELL , 0.1 , Bid , 3 , Ask + 400 * Point , Ask - 200 * Point , "jfh" , 123 );
}
// после того как открылся ордер по цене элемента массива с индексом 2 (1.2874)
// КАК УДАЛИТЬ ИЗ МАССИВА ЗНАЧЕНИЕ 1.2874 так что бы массив продолжил функционировать дальше.
 
ANDREY :

좋은 하루 되세요.

배열을 배우고 있습니다.

배열에서 필요한 값을 제거하는 방법을 알려주십시오.

내가 알기로는 값을 삭제한 후 배열의 크기가 줄어들고 아마도

배열 크기에 대한 새 값도 지정해야 합니다.

디렉토리에서 배열 값을 삭제하는 함수를 찾지 못했습니다. 전체 과정이 어떻게 보이는지 보여주세요. 배열 값 삭제

제거 후 어레이가 더 기능하도록 합니다.

고맙습니다.

여기에 내가 필요한 것에 대한 구체적인 예가 있습니다.

배열을 "자신에게" 복사한 다음 배열의 크기를 1씩 줄여서 변경할 수 있습니다. 배열의 0인덱스 를 제거하고 후자를 채우는 예입니다. 집단.

두 번째 옵션은 "비워진" 공간의 마지막 값을 덮어쓰고 배열 크기를 줄이는 것입니다.

Подскажите про массивы
Подскажите про массивы
  • 2017.12.03
  • www.mql5.com
Я только учусь и на массивах попал в засаду: пытаюсь написать скрипт в котором массив данных будет перезаписываться...
 
Alexey Viktorov :

배열을 "자신에게" 복사한 다음 배열의 크기를 1씩 줄여서 변경할 수 있습니다. 배열의 0 인덱스 를 제거하고 후자를 채우는 예입니다. 집단.

두 번째 옵션은 "비워진" 공간의 마지막 값을 덮어쓰고 배열 크기를 줄이는 것입니다.

팁을 주셔서 감사합니다.
 

좋은 건강!!! 초보자는 아니지만 한 가지 문제로 끔찍하게 망쳤습니다. 지표에서 지표를 호출합니다. 새 막대가 나타나면 일부 값이 바로 다시 컴파일될 때 완전히 다른 값을 얻습니다. 시간에 따른 표시기 계산의 지연은 아무 것도 발생하지 않습니다. 결과적으로 자동 가져오기가 전혀 작동하지 않습니다. 문제. 왜???? 나는 이미 너무 지쳐서 힘이 없다. 얼마나 놀라운 결함이 ... 끝까지 당겼습니다 ...

 

안녕하세요! 가격이 그 이상이라면 어떤 식으로든 신호 레벨을 이동하는 문제를 해결할 수 없습니다. 컴파일 시에는 모든 것이 정상이지만 테스터에서는 "적합한" 조건이 발생하면 아무 것도 변경되지 않습니다. 가격이 신호 수준을 넘어서는 조건에 무엇이 문제인지 알려주실 수 있습니까?

 //-------------------------выход цены за пределы сигнальных уровней-----------------------------------------------------------------------------------------------
 price= iHigh ( Symbol (), PERIOD_M15 , 0 );                                                               //Сигнальный уровень О(Сердцевина)
 ObjectCreate ( "UrO" , OBJ_HLINE , 0 , 0 ,price);
 ObjectSet ( "UrO" , OBJPROP_COLOR , clrYellowGreen );                               
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 priceA=price+ 30 * Point ;                                                                             //Сигнальный уровень А(Максимум)
 ObjectCreate ( "UrA" , OBJ_HLINE , 0 , 0 ,priceA);
 ObjectSet ( "UrA" , OBJPROP_COLOR , clrDarkSlateBlue ); 
//---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 priceB=price- 30 * Point ;                                                                             //Сигнальный уровень B(Минимум)
 ObjectCreate ( "UrB" , OBJ_HLINE , 0 , 0 ,priceB); 
 ObjectSet ( "UrB" , OBJPROP_COLOR , clrOrangeRed ); 
//--------------------------------------------------------------------------
if (( Bid >=priceA) ||( Bid <=priceB)){                                                                 //если цена вышла за одну из ГРАНИЦ, сдвинуть уровни
   ObjectSet ( "UrO" , OBJPROP_PRICE1 , iHigh ( Symbol (), PERIOD_M15 , 0 ));  
                                                                                             

이론적으로 가격이 "UrA" 또는 "UrB" 를 넘어선 경우 "UrO" 레벨은 m15만큼 마지막 캔들의 최대값으로 이동해야 하지만 이것은 일어나지 않습니다. 이유를 아는 사람이 있습니까?

 
vikzip :

안녕하세요! 가격이 그 이상이라면 어떤 식으로든 신호 레벨을 이동하는 문제를 해결할 수 없습니다. 컴파일 시에는 모든 것이 정상이지만 테스터에서는 "적합한" 조건이 발생하면 아무 것도 변경되지 않습니다. 가격이 신호 수준을 넘어서는 조건에 무엇이 문제인지 알려주실 수 있습니까?

이론적으로 가격이 "UrA" 또는 "UrB" 를 넘어선 경우 "UrO" 레벨은 m15만큼 마지막 캔들의 최대값으로 이동해야 하지만 이것은 일어나지 않습니다. 이유를 아는 사람이 있습니까?


ObjectMove() 의 문제점은 무엇입니까?

 
Vitalie Postolache :

ObjectMove() 의 문제점은 무엇입니까?


감사해요!!!)

 
Vitalie Postolache :

ObjectMove() 의 문제점은 무엇입니까?


기능은 훌륭합니다! 조건이 충족되지 않는 이유입니다! 이유를 아시는 분 계신가요???

   double price;                                                                                     //цена сердцевины
   double priceA;                                                                                   //цена верхнего сигнального уровня
   double priceB;                                                                                   //цена нижнего сигнального уровня
//+------------------------------------------------------------------------------------------------------------------------------------------------------------
int start(){
//-------------------------выход цены за пределы сигнальных уровней-----------------------------------------------------------------------------------------------

price= iHigh ( Symbol (), PERIOD_M15 , 0 );                                                               //Сигнальный уровень О(Сердцевина)
ObjectCreate ( "UrO" , OBJ_HLINE , 0 , 0 ,price);
ObjectSet ( "UrO" , OBJPROP_COLOR , clrYellowGreen );                                                                                                                               
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 priceA=price+ 30 * Point ;                                                                             //Сигнальный уровень А(Максимум)
ObjectCreate ( "UrA" , OBJ_HLINE , 0 , 0 ,priceA);
ObjectSet ( "UrA" , OBJPROP_COLOR , clrDarkSlateBlue ); 
//---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 priceB=price- 30 * Point ;                                                                             //Сигнальный уровень B(Минимум)
ObjectCreate ( "UrB" , OBJ_HLINE , 0 , 0 ,priceB); 
ObjectSet ( "UrB" , OBJPROP_COLOR , clrOrangeRed ); 
 //---------------------------------------------------------------------------------------------------------------------------------------------------------------
if (( Bid <=priceB)||( Bid >=priceA)){                                                                 //если цена вышла за одну из ГРАНИЦ
   ObjectsDeleteAll ();                                                                             // для примера удаляю все объекты, но этого не происходит!
  }                                                                                               // Почему ведь очевидно на тестере цена выходит за пределы, но ни чего не происходит???
return ( 0 );
}
누구든지 무엇이 잘못되었는지 설명 할 수 있습니까?
 

안녕하세요!

저는 이제 막 MQL4를 배우기 시작했습니다. 스크립트가 MT4(버전 4.0 빌드 1090)에서 " 자동 거래 허용 " 버튼을 무시하는 이유를 알 수 없습니다.

진정되지 않는 디자인은 다음과 같습니다.

 int start()
{

     Alert ( "Привет!" );

return ;
}

버튼을 누르지 않으면 경고 창이 계속 나타납니다. 스크립트에 주문을 넣으면 자동 거래 버튼을 눌렀는지 떼었는지에 관계없이 멈추지 않고 매 틱마다 재생됩니다.


이 빌드를 시도했습니다.


 int start()
{

 while (! IsStopped ())
    {
    
       Alert ( "Привет!" );

     if (! IsExpertEnabled ()) break ;
    }


return ;
}

처음에는 작동하는 것 같았지만 스크립트가 복잡해지면서 작동도 멈췄습니다...

그리고 일반적으로 나는 아직 모릅니다. 아마도 이것이 어떻게되어야하는지 모르지만 고문의 작업에는 명확성이 없습니다. 고문을 변경 한 후 어떤 이유로 든 오래된 것은 마치 백그라운드에서처럼 계속 작동합니다. , 하지만 아마도 아직 분명히 알아내지 못했을 것입니다.

 
Dimitry-1983 :

안녕하세요!

저는 이제 막 MQL4를 배우기 시작했습니다. 스크립트가 MT4(버전 4.0 빌드 1090)에서 " 자동 거래 허용 " 버튼을 무시하는 이유를 알 수 없습니다.

진정되지 않는 디자인은 다음과 같습니다.

버튼을 누르지 않으면 경고 창이 계속 나타납니다. 스크립트에 주문을 넣으면 자동 거래 버튼을 눌렀는지 떼었는지에 관계없이 멈추지 않고 매 틱마다 재생됩니다.


나는 이 디자인을 시도했다:


처음에는 작동하는 것 같았지만 스크립트가 복잡해지면서 작동도 멈췄습니다...

그리고 일반적으로 나는 아직 모릅니다. 아마도 이것이 어떻게되어야하는지 모르지만 고문의 작업에는 명확성이 없습니다. 고문을 변경 한 후 어떤 이유로 든 오래된 것은 마치 백그라운드에서처럼 계속 작동합니다. , 하지만 아마도 아직 분명히 알아내지 못했을 것입니다.

이 버튼은 거래 기능에만 영향을 미칩니다. 다른 모든 것은 정상적으로 작동합니다.