[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 1110

 
ALEX_SPB_RU :

아직도 이해가 안 돼요!

검색이 0 위치에서 시작되어야 한다고 명시적으로 지정하더라도 yay_Prefix_78이라는 이름의 객체는 삭제됩니다 . 함수는 숫자 4 를 반환합니다.

즉, 접두사로 삭제하려면 함수 앞에 ==0 을 지정하거나 ! 를 넣어야 합니다.

불쾌하지 않습니다. 저는 배우는 중이므로 모든 것을 스스로 정리하고 싶습니다.

도움을 주셔서 다시 한 번 감사드립니다!

행운을 빕니다!

어쩌면 내가 나를 충분히 명확하게 표현하지 않았을 수도 있습니다.

if ( StringFind (name, prefix, 0) == 0) 은 문자열의 처음부터 독점적으로 검색하기 위한 것입니다.

나는 그들이 직접 작성한 함수가 아닌 한 기본 매개변수를 좋아하지 않습니다. 완전한 제어가 가능합니다 ....

행운을 빕니다.

 
abolk :

당신이 그것을 부랑자라고 부를 수 있다면, 그 다음 부적입니다. 나는 특히 도움이 필요한 사람을 도울 것입니다. 그러나 나는 누군가가 자신의 일을 최소한 조금이라도 이해하기에는 너무 게으르다면 돕는 것이 완전히 실패라는 것을 내 자신의 경험을 통해 압니다 ...
왜 이렇게이다? 유능한 사람이 방금 교과서를 펼친 사람보다 코드를 작성하는 것이 더 빠르고 쉽다는 사실을 주장하는 것이 가능합니까? 그는 몇 번 실수하고 원하는 결과를 얻을 수 있습니까? 글을 쓰는 방법을 생각하고 싶지 않다는 사실을 말씀하시는 거라면 논리적으로 바로 과제를 작성하고 작성해 달라고 하겠지만, 아니요, 스스로 알아내고 싶지만, 전체 언어를 이해하지만 특히 내 작업
 
sergeev :

특정 기능 이름을 썼습니다.

당신의 행동 알고리즘을 보여주기도 했습니다.

당신이 쓴 것에 대해 생각하기에는 너무 게으른가요?

그런데 이상하게도 글을 쓰기 전에 교과서에서 이런 기능들을 찾아보고 생각했다. OrderModify만 찾았습니다. 이전에 본 기억이 있지만 OrderOpenPrice 찾을 수 없습니다. 성찰에 관해서는 그러한 작업이 당신이 쓴 것을 입력해야 하는 논리적 기능과 관련이 있다고 생각했습니다. 내 생각이 맞나?
 
Danil93 :
그런데 이상하게도 글을 쓰기 전에 교과서에서 이런 기능들을 찾아보고 생각했다. OrderModify만 찾았습니다. 이전에 본 기억이 있지만 OrderOpenPrice 찾을 수 없습니다. 성찰에 관해서는 그러한 작업이 당신이 쓴 것을 입력해야 하는 논리적 기능과 관련이 있다고 생각했습니다. 내 생각이 맞나?

네.

확인. 내가 원하는 기능을 제공하면 최소한 코드에 직접 삽입할 수 있습니까?

 
sergeev :

네.

확인. 내가 원하는 기능을 제공하면 최소한 코드에 직접 삽입할 수 있습니까?

저 할 수 있어요
 

프로그래밍 방식으로 특정 날짜에서 다른 날짜까지의 시간 간격에서 높은 값을 찾는 방법.

내가 알기로는 고점을 막대로 검색하는 기능이 있습니다. 여기서 고점 검색은 0 막대에서 4 막대까지 수행되지만 막대 대신이 막대의 날짜와 시간을 삽입 할 수 있습니다 ?

예를 들어 프로그래밍 방식으로 막대의 수를 결정하려면 날짜 2011.01.05 20:00을 삽입하고 어느 막대(10 또는 100 막대)인지 확인한 다음 상위 검색 기능에 삽입합니까?

 iHigh ( Symbol () , 0 , iHighest ( NULL , 0 , MODE_HIGH , 4 , 0 )
 
Eliza :

프로그래밍 방식으로 특정 날짜에서 다른 날짜까지의 시간 간격에서 높은 값을 찾는 방법.

내가 알기로는 고점을 막대로 검색하는 기능이 있습니다. 여기서 고점 검색은 0 막대에서 4 막대까지 수행되지만 막대 대신이 막대의 날짜와 시간을 삽입 할 수 있습니다 ?

예를 들어 프로그래밍 방식으로 막대의 수를 결정하려면 날짜 2011.01.05 20:00을 삽입하고 어느 막대(10 또는 100 막대)인지 확인한 다음 상위 검색 기능에 삽입합니까?


 int iBarShift( string symbol, int timeframe, datetime time, bool exact=false) 
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. 
Если для указанного времени бар отсутствует ( "дыра" в истории), то функция возвращает, в зависимости 
от параметра exact, - 1 или смещение ближайшего бара.

Параметры:
symbol   -   Символьное имя инструмента. NULL означает текущий символ. 
timeframe   -   Период. Может быть одним из периодов графика. 0 означает период текущего графика. 
time   -   Значение времени для поиска. 
exact   -   Возвращаемое значение если бар не найден. FALSE - iBarShift возвращает ближайший. 
            TRUE - iBarShift возвращает - 1 . 

Пример:
   datetime some_time= D'2004.03.21 12:00' ;
   int       shift=iBarShift( "EUROUSD" , PERIOD_M1 ,some_time);
   Print ( "shift of bar with open time " ,TimeToStr(some_time), " is " ,shift);

 
 
VladislavVG :

감사해요.)
 
Danil93 :
저 할 수 있어요
 //------------------------------------------------------------------ TralTP
void TralTP()
{
         int TS= 20 ; // расстояние убытка, на котором переносим тейкпрофит на цену открытия
        
         double FreezLvl=MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point ; // расстояние заморозки ордера
         double StopLvl=MarketInfo( Symbol (), MODE_STOPLEVEL)* Point ; // расстояние стопуровня ордера
        
         int n= OrdersTotal (); // число текущих открытых ордеров
         for ( int i= 0 ; i<n; i++) // проходим по всем ордерам и двигаем стоп
        {
                 if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ; // берем ордер
                 if (OrderSymbol()!= Symbol ()) continue ; // если ордер не нашей валюты, то пропускаем
                
                 // берем его параметры
                 int dir=OrderType(); double cop= NormalizeDouble (OrderOpenPrice(), Digits );
                 double csl= NormalizeDouble (OrderStopLoss(), Digits ); 
                double ctp= NormalizeDouble (OrderTakeProfit(), Digits );
                
                 double apr; if (dir==OP_BUY) apr=Bid; else apr=Ask;
                 // проверили уровень заморозки
                 if ( MathAbs (ctp-apr)<=FreezLvl || MathAbs (csl-apr)<=FreezLvl) continue ; // если уровень заморозки
                
                 double tp=cop; // ставим ТП на цену открытия
                
                 // и проверяем условия выполнения отхода в убыток и правильность установки
                 if ((dir==OP_BUY && cop-apr>=TS* Point && (tp<ctp || ctp== 0 ) && tp>apr+StopLvl)
                 || (dir==OP_SELL && apr-cop>=TS* Point && (tp>ctp || ctp== 0 ) && tp<apr-StopLvl))
                {
                         if (!OrderModify(OrderTicket(), cop, csl, tp, 0 )) 
                                 Print ( GetLastError (), " -TralPos #" +OrderTicket()+ " tp=" +tp);
                }
        }
}
 


if (OrderSymbol()!=Symbol()) 계속 // 주문이 우리 통화가 아닌 경우 건너뜁니다.

아직 아무것도 이해하지 못해서 포럼에 들어왔을 뿐인데 15초를 찾고 있는데 오류가 있어서 언뜻 보기에 == 써야 합니다. 뭔가 잘못되었다면 죄송합니다.

연휴가 계속되면서!!! 여러분!!!!