더블 타입을 화면에 표시하기 전에 소수점 이하 2자리로 정규화하는데 가끔 안되는 경우가 있습니다. 왜요? 다음은 코드의 일부입니다.
유형 prof[] - 문자열
그리고 버그가 너무 많다
DoubleToString ()
DoubleToString
숫자 값을 텍스트 문자열로 변환합니다.
stringDoubleToString(_ 더블값,// 숫자 정수숫자=8// 소수점 이하 자릿수 );
옵션
값
【인】 부동 소수점 값입니다.
숫자
【인】 정밀도 형식입니다. 자릿수 값이 0과 16 사이이면 지정된 소수점 이하 자릿수 가 있는 숫자의 문자열 표현을 얻습니다. 숫자 값이 -1과 -16 사이인 경우 과학 형식의 숫자 문자열 표현은 지정된 소수 자릿수로 얻어집니다. 다른 모든 경우에는 숫자의 문자열 표현에 소수점 이하 8자리가 포함됩니다.
안녕 친구들.
손절매, 기술 이익 및 후행 값을 포인트가 아닌 백분율로 표시하는 방법.
이 공식은 매우 복잡하고 전혀 작동하지 않습니다.
StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT,Digits);
가장 간단한 종류의 백분율을 원합니다.
이중 손절매 = 0.05;
--------
Profit=Bid-Stoploss 백분율( 서투른 예 이지만 이해를 위해)
고맙습니다.
서투른 예는 서투른 대답을 낳습니다. 이해를 위해서는 백분율을 측정하는 것부터 이해해야 합니다???
.. 고문을 작성하는 데 도움이 필요한 사람은 저에게 편지를 쓸 수 있습니다. 돕다
0 막대에서 가격을 가져오는 데 도움이 됩니다. 여기에 토론이 있습니다.
https://www.mql5.com/ru/forum/160683/page237#comment_5350688
서투른 예는 서투른 대답을 낳습니다. 이해를 위해서는 백분율을 측정하는 것부터 이해해야 합니다???
이해했다.
나는 더 명확하게하려고 노력할 것입니다.
처음에 내 코드는 다음과 같습니다.
외부 이중 정지 손실 = 0;
extern double 이익실현 = 0;
외부 이중 SL_PERCENT = 0.02;
외부 이중 TP_PERCENT = 0.03;
외부 이중 TRALL_PERCENT = 0.01;
외부 이중 로트=0.5;
티켓=OrderSend(Symbol(),OP_SELL,Lots,Bid,3, NormalizeDouble (OrderOpenPrice+(OrderOpenPrice + StopLoss)/100*SL_PERCENT,Digits),NormalizeDouble(OrderOpenPrice-(OrderOpenPrice - TakeProfit)/100", ",매직,0,빨간색);
StopLoss는 작동하지만 0.02%에서는 작동하지 않지만 0.43%에서는 정확하지 않습니다. 나는 TakeProfit을 모릅니다. 왜냐하면 나는하지 않았지만 아마 작동하지 않을 것입니다.
코드가 올바르지 않다는 가정이 있습니다.
예, 중요할 수 있습니다. 3-4 쌍의 팩으로 모든 창고에 대한 주문이 열립니다. 때로는 다섯.
나는 또한 포인트가 아니라 StopLoss, Takeprofit, TrailingStop과 같은 지표에 대한 백분율로 변경 사항을 설정하고 싶습니다.
예를 들어,
1)Takeprofit=OrderOpenPrice+%TP_PERCENT
2) 손절매=OrderOpenPrice-%SL_PERCENT
저것들.
티켓 = OrderSend ( 기호 (), OP_BUY ,1,Ask,0,%,%, "" ,Magic,0, clrGreen );
그리고 후행을 추가로 수정하는 방법을 알 수 없습니다.
튜토리얼에서 샘플을 가져왔지만 분명히 뭔가 잘못하고 있습니다.
3.) TrailingStop=입찰가-%TRAL_PERCENT
사례 0: // 주문 구매
if (NormalizeDouble(OrderOpenPrice-SL*Point,Digits)*SL_PERCENT/100<=(OrderOpenPrice-Ask) // 더 낮은 값을 원하는 경우.
NormalizeDouble(Bid-(Bid-TS)/100*TRAL_PERCENT,Digits)
|| NormalizeDouble(SL,숫자)==0)
{
SL=입찰가-TS*포인트; // 그런 다음 수정
문자열 Text="구매"; // 구매를 위한 텍스트
수정=참; // 수정에 할당됨.
}
설명할 수 있기를 진심으로 바랍니다.
고맙습니다.
촛불의 시작 부분에 엄격하게 거래 개시( OrderSend 보내기)를 능숙하게 구현하는 방법 - OnTimer 및/또는 OnTick,
터미널을 너무 많이 로드하지 않도록(20-30개의 차트가 열리고 동시에 추적됨)?
양초가 시작될 때 새 틱의 출현 지연은 최대 5-10초가 될 수 있는 반면 이전 틱과의 간격은 상당합니다(거래 조건에 대해 음수).
ps 동시에 Expert Advisor는 거래를 열기 1-2분 전에 가능한 거래에 대해 미리 알려야 합니다. 촛불이 열리기 전.
촛불 시작 시 엄격하게 거래 개시(OrderSend 보내기)를 능숙하게 구현하는 방법 - OnTimer 및/또는 OnTick,
터미널에 과부하가 걸리지 않도록(20-30개의 차트가 동시에 열려 있고 추적됨)?
양초가 시작될 때 새 틱의 출현 지연은 최대 5-10초가 될 수 있는 반면 이전 틱과의 간격은 상당합니다(거래 조건에 대해 음수).
ps 동시에 Expert Advisor는 거래를 열기 1-2분 전에 가능한 거래에 대해 미리 알려야 합니다. 촛불이 열리기 전.
새 막대 모양을 보려면 타이머에서 열려 있는 모든 차트를 살펴봐야 합니다.
클래스 인스턴스에 대한 포인터 배열을 생성해야 합니다. 열려 있는 각 차트의 각 시간 프레임에 대해 하나의 클래스입니다.
이 기사에서 새로운 바의 시작을 추적하는 클래스에 대해 읽을 수 있습니다.
차트 열기 - 열려 있는 차트 배열에 추가합니다. 차트 닫기 - 배열에서 제거합니다.
타이머의 루프에서 클래스 인스턴스에 대한 포인터 배열을 살펴보고 새 막대가 형성되면 클래스가 반환하는 새 막대를 여는 사실을 확인합니다.
새 막대 모양을 보려면 타이머에서 열려 있는 모든 차트를 살펴봐야 합니다.
클래스 인스턴스에 대한 포인터 배열을 만들어야 합니다...
MQL4를 통해?
그리고 무엇을 할 것인가 - "... 거래 개시 1-2분 전, 즉 양초가 열리기 전에 ... 가능한 거래에 대해 미리 알려야 합니다 ...", 즉. 바 내부
https://www.mql5.com/ru/forum/208120#comment_5412193 주제로 여러분을 초대합니다.
우리는 합의점을 찾을 수 없습니다.
더블 타입을 화면에 표시하기 전에 소수점 이하 2자리로 정규화하는데 가끔 안되는 경우가 있습니다. 왜요? 다음은 코드의 일부입니다.
유형 prof[] - 문자열
그리고 버그가 너무 많다
더블 타입을 화면에 표시하기 전에 소수점 이하 2자리로 정규화하는데 가끔 안되는 경우가 있습니다. 왜요? 다음은 코드의 일부입니다.
유형 prof[] - 문자열
그리고 버그가 너무 많다
DoubleToString ()
DoubleToString
숫자 값을 텍스트 문자열로 변환합니다.
stringDoubleToString ( _
더블 값 , // 숫자
정수 숫자=8 // 소수점 이하 자릿수
);
옵션
반환 값
예시:
인쇄 ( "DoubleToString(120.0+M_PI) : " , DoubleToString (120.0+ M_PI ));
인쇄 ( "DoubleToString(120.0+M_PI,16) : " , DoubleToString (120.0+ M_PI ,16));
인쇄 ( "DoubleToString(120.0+M_PI,-16) : " , DoubleToString (120.0+ M_PI ,-16));
인쇄 ( "DoubleToString(120.0+M_PI,-1) : " , DoubleToString (120.0+ M_PI ,-1));
인쇄 ( "DoubleToString(120.0+M_PI,-20) : " , DoubleToString (120.0+ M_PI ,-20));
이상한 버그.
입력을 추가합니다.
input datetime test =0;