조언대로 코드를 작성했습니다. 첫째, 코드에 따르면 정지 유형을 선택하는 조건이 있습니다. atr 또는 fixed
다음으로 정규화를 주석 처리하고 다음과 같이 할당했습니다.
코드를 따라 더 나아가 나는 이익을 계산하고 있습니다. 거기에는 아무런 문제가 없었고 이익을 계산한 후에 조언된 끔찍한 공식을 추가했습니다.
모든 것이 오류 없이 컴파일되었습니다. 그리고 테스트가 시작되면 내가 아는 한 0으로 나누기가 발생한다는 로그에 오류가 발생하고 테스트가 중지됩니다. 내가 어디를 잘못했거나 무엇을 잘못했습니까?
그냥 삭제
sl = fabs (OrderOpenPrice()-OrderStopLoss())/ _Point ; // ПРИСВОИЛ ЗНАЧЕНИЕ КАК СОВЕТОВАЛИ//sl= NormalizeDouble(sl,Digits());// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ СТОП ЛОССА ДЛЯ ОТКРЫТИЯ СДЕЛКИ ТО ЧТО БЫЛО ЗАКОМЕНТИРОВАЛ
voidOnTick ()
{
//---if (tip_sl==en_po_atr)
{ //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР
sl= iATR ( NULL ,PeriodForWork_sl,atr_sl_period, 1 )/ Point ; // ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАPrint ( "СТОП ПО АТР, ЕГО РАЗМЕР " +sl);
}
else//ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
{
sl= razmer_fikc_sl; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТPrint ( "СТОП ПО АТР, ЕГО РАЗМЕР " +sl);
}
double lot = MathFloor ((Free*MaxRisk/ 100 )/(sl*LotVal)/Step)*Step; //СТРАШНАЯ ФОРМУЛА РАСЧЁТА ОБЪЁМА ЛОТА
라인에 주석을 달았고 테스트가 시작되었습니다. 정말 감사합니다! 왜 iATR에서 손절매 변수를 받을 때 끝에 포인트로 나누는지 이해가 되지 않았습니다. P/S 나는 수학이 정말 어렵다 - 나는 장난을 치는 것이 아니다 :-(그러나 나는 테스트가 가고 100 랏의 창고로 최소 랏이 설정되어 있고 10,000의 창고로 항상 다른 것 같아요. , 그래서 규범이 작동합니다 O_o 도움을 주셔서 다시 한 번 감사합니다 ... .
라인에 주석을 달았고 테스트가 시작되었습니다. 정말 감사합니다! 왜 iATR에서 손절매 변수를 받을 때 끝에 포인트로 나누는지 이해가 되지 않았습니다. P/S 나는 수학이 정말 어렵다 - 나는 장난을 치는 것이 아니다 :-(그러나 나는 테스트가 가고 100 랏의 창고로 최소 랏이 설정되어 있고 10,000의 창고로 항상 다른 것 같아요. , 그래서 규범이 작동합니다 O_o 도움을 주셔서 다시 한 번 감사합니다 ... .
조언대로 코드를 작성했습니다. 첫째, 코드에 따르면 정지 유형을 선택하는 조건이 있습니다. atr 또는 fixed
다음으로 정규화를 주석 처리하고 다음과 같이 할당했습니다.
코드를 따라 더 나아가 나는 이익을 계산하고 있습니다. 거기에는 아무런 문제가 없었고 이익을 계산한 후에 조언된 끔찍한 공식을 추가했습니다.
모든 것이 오류 없이 컴파일되었습니다. 그리고 테스트가 시작되면 내가 아는 한 0으로 나누기가 발생한다는 로그에 오류가 발생하고 테스트가 중지됩니다. 내가 어디를 잘못했거나 무엇을 잘못했습니까?
그냥 삭제
조언대로 코드를 작성했습니다. 첫째, 코드에 따르면 정지 유형을 선택하는 조건이 있습니다. atr 또는 fixed
다음으로 정규화를 주석 처리하고 다음과 같이 할당했습니다.
코드를 따라 더 나아가 이익을 계산했습니다. 거기에는 아무런 문제가 없었고 이익을 계산한 후 조언된 끔찍한 공식을 추가했습니다.
모든 것이 오류 없이 컴파일되었습니다. 그리고 테스트가 시작되면 내가 아는 한 0으로 나누기가 발생한다는 로그에 오류가 발생하고 테스트가 중지됩니다. 내가 어디를 잘못했거나 무엇을 잘못했습니까?
두 가지 다른 옵션이 주어졌을 때 두 가지를 동시에 적용할 필요는 없습니다.
sl을 두 가지 다른 옵션으로 간주합니다.
또는
가격 가치에서 가치를 얻으십시오. 그리고 ...에서 ...까지의 포인트는 공식에 삽입되어야 합니다.
정류장이 iATR(………)/_Point 또는 size_fikc_sl 가격과 거리가 있지만 함수에서 두 개의 다른 값을 사용하는 것은 그다지 편리하지 않으므로 하나의 옵션만 남겨두는 것이 좋습니다.
그리고 로트 크기를 계산하기 전에 sl을 계산해야 한다는 것을 잊지 마십시오.
이런 식으로 하세요...
그냥 삭제
라인에 주석을 달았고 테스트가 시작되었습니다. 정말 감사합니다! 왜 iATR에서 손절매 변수를 받을 때 끝에 포인트로 나누는지 이해가 되지 않았습니다. P/S 나는 수학이 정말 어렵다 - 나는 장난을 치는 것이 아니다 :-(그러나 나는 테스트가 가고 100 랏의 창고로 최소 랏이 설정되어 있고 10,000의 창고로 항상 다른 것 같아요. , 그래서 규범이 작동합니다 O_o 도움을 주셔서 다시 한 번 감사합니다 ... .
라인에 주석을 달았고 테스트가 시작되었습니다. 정말 감사합니다! 왜 iATR에서 손절매 변수를 받을 때 끝에 포인트로 나누는지 이해가 되지 않았습니다. P/S 나는 수학이 정말 어렵다 - 나는 장난을 치는 것이 아니다 :-(그러나 나는 테스트가 가고 100 랏의 창고로 최소 랏이 설정되어 있고 10,000의 창고로 항상 다른 것 같아요. , 그래서 규범이 작동합니다 O_o 도움을 주셔서 다시 한 번 감사합니다 ... .
ATR은 0.00120과 같은 십진수를 출력합니다.
size_fikc_sl 당신은 정수가 있습니다
포인트가 필요한 로트를 계산하려면 정수
ATR/Point는 정수를 생성합니다.
오래된 스레드이지만 해결책을 찾을 수 없습니다. 시간 간격(예: 12:00 ~ 14:00)을 규정하고 이 간격에서 한 번만 일부 조건(예: RSI<30)을 충족하는 주문을 여는 방법.
첫 번째 조건 - 때가 왔다
두 번째 조건 - rsi
세 번째 조건 - 시간 간격으로 그러한 주문을 여는 가격으로 역사상 그러한 주문이 없습니다.
안녕하세요.
Elliott Wave Oscillator 표시기가 있으며 EWO 변수의 숫자 값을 제공합니다. 0보다 큰 양의 EWO와 0보다 작은 음의 EWO가 있습니다.
마지막 100개의 EWO 판독값에서 양수 EWO의 평균을 계산하고 음수 EWO의 평균을 별도로 계산합니다.
다음과 같이 표시기에서 값을 가져옵니다. double EWO=iCustom(Symbol(),0,"Elliott Wave Oscillator",0,0);
조언자에서 이것을 구현하는 데 어떤 mql4 코드를 사용할 수 있습니까?
평균 모듈로를 찾는 것이 가능했습니다.
이중 가용성_EWO = 0;
for(int g=0;g<100;g++)
avarage_EWO = avarage_EWO + MathAbs ( iCustom(Symbol(),0,"엘리엇 파동 발진기",0,g) ); // 모듈로 평균
가용성_EWO = 가용성_EWO/100;
그러나 평균 양수 및 평균 음수 EWO를 별도로 계산하는 방법은 무엇입니까?
덕분에!
이익실현 트리거의 결과로 주문이 이루어졌습니다.
어떻게 그리고 왜 ORDER _REASON_TP,
DEAL _REASON_TP가 어떻게 작동하는지 알고 있지만 여기서 주문은 어떻게 되는지 명확하지 않습니다.