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

 

안녕하세요.

창의 표시기는 소수점 이하 5자리까지 표시합니다.

iCustom(Symbol(), PERIOD_M1 , "MACD",12, 26, SignalSMA, 0, 0)을 통해 Expert Advisor에서 사용할 때 최대 4자리 값을 표시합니다(인쇄 명령으로 설정).

올빼미에서 5자를 얻는 방법?

 
DoubleToString 함수를 통해 인쇄하면 원하는 5자를 얻을 수 있습니다. 그리고 원한다면 8.
 
AlexeyVik :
DoubleToString 함수를 통해 인쇄하면 원하는 5자를 얻을 수 있습니다. 그리고 원한다면 8.
즉, Expert Advisor에서 지표에 대한 계산은 5자리로 수행되며, Journal에 표시될 때 4번째 Print가 잘리기 전에?
 
Craft :
즉, Expert Advisor에서 지표에 대한 계산은 5자리로 수행되며, Journal에 표시될 때 4번째 Print가 잘리기 전에?

계산 결과는 정규화되지 않은 경우 소수점 이하 16자리까지 가능합니다.

Данные типа double выводятся с точностью до 16 десятичных цифр после точки, при этом данные могут выводиться либо в традиционном либо в научном формате – в зависимости от того, как запись будет наиболее компактна.
Данные типа float выводятся с 5 десятичными цифрами после точки. Для вывода вещественных чисел с другой точностью либо в явно указанном формате необходимо использовать функцию PrintFormat (). 

Print 를 통한 직접 계산의 출력은 잘리지 않습니다. 예를 들어 정규화와 같은 코드가 여전히 있습니다.

 

문제의 사실은 다른 것이 없다는 것입니다(정규화 등):

이중 g_macd=iCustom(Symbol(), PERIOD_M1 , "g_MACD",12, 26, SignalSMA, 1, 0);

인쇄("g_macd=",g_macd);

g_MACD는 소수점 이하 5자리까지 표시기에 (첫 번째 버퍼의) 값을 가지며 로그의 Print는 소수점 4자리까지 값을 제공하므로 허용되지 않습니다.

이 문제를 해결하는 방법은 무엇입니까?

 
Craft :

문제의 사실은 다른 것이 없다는 것입니다(정규화 등):

이중 g_macd=iCustom(Symbol(), PERIOD_M1, "g_MACD",12, 26, SignalSMA, 1, 0);

인쇄("g_macd=",g_macd);

g_MACD는 소수점 이하 5자리까지 표시기에 (첫 번째 버퍼의) 값을 가지며 로그의 Print는 소수점 4자리까지 값을 제공하므로 허용되지 않습니다.

이 문제를 해결하는 방법은 무엇입니까?

코드를 보면 문제가 어딘가에 있습니다.

확인하기 위해 WPR 호출로 간단한 스크립트를 실행 하고 표시기 호출 결과를 인쇄했습니다.

 double wpr1= iWPR ( NULL , 0 ,1440, 1 );
 Print ( "WPR=" ,wpr1);

****2015.03.08 01:12:15	2015.03.06 22:59 **** EURUSD,H1: WPR=-99.1902834008098


아시다시피 표시기 자체는 창의 값을 소수점 이하 4자리로 표시하고 고문의 경우 최대 13개, 심지어 14개까지 표시합니다.

 
Pokrov :

안녕하세요! 아래 코드를 보십시오. 신호에 "화살표" 개체를 생성하면 로그를 통과하지만 테스터에서 화살표를 그리지 않으며 테스터에서 시작할 때 로그에 오류 TestGenerator: unmatched를 씁니다. 데이터 오류(2014.10.13 17:10에서 볼륨 제한 412 초과),

테스트하는 동안 오류가 발생합니다. "Checking arrow USDJPYm,M5: Error creation object: code #4200" - 그러나 프로그램이 처음에 개체가 생성되었음을 발견하고 삭제한 후 다시 생성하기 때문에 이것이 정상임을 이해합니다. 일반적으로 질문에 대한 의견에 감사드립니다.

기록된 대로 엄격하게 판단하지 마십시오.


사람들, 글쎄, 그것을 알아내는 화살표를 도와주세요, pliz !!!

 //+------------------------------------------------------------------+
//| SignalOpenOrderBuy SendMail                                      |
//+------------------------------------------------------------------+
if (PLO0>S0 && PLO1<=S1 && PLO2<S2 && Time[ 0 ] > SignalTime)
{
SignalTime = TimeCurrent ();
bool SignalBuy = ObjectCreate ( 0 , "ArrowBay" , OBJ_ARROW_BUY , 0 , 0 ,Bid,SignalTime);
Print ( "Стрелка Buy установлена" );
ObjectSetInteger ( 0 , "ArrowBay" , OBJPROP_COLOR , clrGreen );
if (!SignalBuy)
Print ( "Ошибка создания объекта: code #" , GetLastError ());
ResetLastError ();
ObjectDelete ( 0 , "ArrowBay" );
RefreshRates();
SignalBuy = ObjectCreate ( 0 , "ArrowBay" , OBJ_ARROW_BUY , 0 , 0 ,Bid,SignalTime);
ObjectSetInteger ( 0 , "ArrowBay" , OBJPROP_COLOR , clrGreen );
if (!SignalBuy)
Print ( "Ошибка создания объекта: code #" , GetLastError ());
else
Print ( "Стрелка Buy установлена" );
}
 
Pokrov :

사람들, 글쎄, 그것을 알아내는 화살표를 도와주세요, pliz !!!

이 라인을 처리

 bool SignalBuy = ObjectCreate ( 0 , "ArrowBay" , OBJ_ARROW_BUY , 0 , 0 ,Bid,SignalTime);

화살표가 그려진 곳을 보십시오.

 
AlexeyVik :

이 라인을 처리

화살표가 그려진 곳을 보십시오.

고마워, 알렉시! 도움이 되었습니다. 이제 화살표가 나타나고 신호에서 신호로 1점씩 이동하기 시작했습니다. 하지만 화살표가 각 신호에 나타나게 하고 제자리에 유지하려면 어떻게 해야 합니까?

그러면 차트에서 신호의 트리거링을 분석할 수 있습니까?

 
Pokrov :

고마워, 알렉시! 도움이 되었습니다. 이제 화살표가 나타나고 신호에서 신호로 1점씩 이동하기 시작했습니다. 하지만 화살표가 각 신호에 나타나게 하고 제자리에 유지하려면 어떻게 해야 합니까?

그러면 차트에서 신호의 트리거링을 분석할 수 있습니까?

움직임을 멈추고 새로운 것을 그립니다.
사유: