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

 
KhuKhu :

안녕 친구들.

손절매, 기술 이익 및 후행 값을 포인트가 아닌 백분율로 표시하는 방법.

이 공식은 매우 복잡하고 전혀 작동하지 않습니다.

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

 
Alexey Viktorov :

서투른 예는 서투른 대답을 낳습니다. 이해를 위해서는 백분율을 측정하는 것부터 이해해야 합니다???

이해했다.

나는 더 명확하게하려고 노력할 것입니다.

처음에 내 코드는 다음과 같습니다.

외부 이중 정지 손실 = 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분 전에 가능한 거래에 대해 미리 알려야 합니다. 촛불이 열리기 전.

 
maxsoft :

촛불 시작 시 엄격하게 거래 개시(OrderSend 보내기)를 능숙하게 구현하는 방법 - OnTimer 및/또는 OnTick,

터미널에 과부하가 걸리지 않도록(20-30개의 차트가 동시에 열려 있고 추적됨)?

양초가 시작될 때 새 틱의 출현 지연은 최대 5-10초가 될 수 있는 반면 이전 틱과의 간격은 상당합니다(거래 조건에 대해 음수).

ps 동시에 Expert Advisor는 거래를 열기 1-2분 전에 가능한 거래에 대해 미리 알려야 합니다. 촛불이 열리기 전.

새 막대 모양을 보려면 타이머에서 열려 있는 모든 차트를 살펴봐야 합니다.

클래스 인스턴스에 대한 포인터 배열을 생성해야 합니다. 열려 있는 각 차트의 각 시간 프레임에 대해 하나의 클래스입니다.

이 기사에서 새로운 바의 시작을 추적하는 클래스에 대해 읽을 수 있습니다.

차트 열기 - 열려 있는 차트 배열에 추가합니다. 차트 닫기 - 배열에서 제거합니다.

타이머의 루프에서 클래스 인스턴스에 대한 포인터 배열을 살펴보고 새 막대가 형성되면 클래스가 반환하는 새 막대를 여는 사실을 확인합니다.

 
Artyom Trishkin :

새 막대 모양을 보려면 타이머에서 열려 있는 모든 차트를 살펴봐야 합니다.

클래스 인스턴스에 대한 포인터 배열을 만들어야 합니다...

MQL4를 통해?

그리고 무엇을 할 것인가 - "... 거래 개시 1-2분 전, 즉 양초가 열리기 전에 ... 가능한 거래에 대해 미리 알려야 합니다 ...", 즉. 바 내부

 

https://www.mql5.com/ru/forum/208120#comment_5412193 주제로 여러분을 초대합니다.

우리는 합의점을 찾을 수 없습니다.

Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд
  • 2017.07.07
  • www.mql5.com
Народ, подскажите пожалуйста, заморочился я тут по поводу AccountBalance() и AccountLeverage(). 1...
 

더블 타입을 화면에 표시하기 전에 소수점 이하 2자리로 정규화하는데 가끔 안되는 경우가 있습니다. 왜요? 다음은 코드의 일부입니다.

prof[num]=( string ) NormalizeDouble (( double )prof[num]+( double )profit2, 2 );

유형 prof[] - 문자열

그리고 버그가 너무 많다


 
Vladimir Tkach :

더블 타입을 화면에 표시하기 전에 소수점 이하 2자리로 정규화하는데 가끔 안되는 경우가 있습니다. 왜요? 다음은 코드의 일부입니다.

유형 prof[] - 문자열

그리고 버그가 너무 많다


 DoubleToString ()

DoubleToString

숫자 값을 텍스트 문자열로 변환합니다.

stringDoubleToString ( _
    더블    , // 숫자
    정수       숫자=8      // 소수점 이하 자릿수
);

옵션

【인】 부동 소수점 값입니다.

숫자

【인】 정밀도 형식입니다. 자릿수 값이 0과 16 사이이면 지정된 소수점 이하 자릿수 가 있는 숫자의 문자열 표현을 얻습니다. 숫자 값이 -1과 -16 사이인 경우 과학 형식의 숫자 문자열 표현은 지정된 소수 자릿수로 얻어집니다. 다른 모든 경우에는 숫자의 문자열 표현에 소수점 이하 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;

컴파일 중. 0 날짜가 1970.01.01이면 설정에서 시간을 00, 01 또는 02로 설정할 수 없습니다.