좋은 오후에요 여러분. 이익 계산을 구현하고 atr 표시기를 중지하려고 합니다. 중지는 잘 작동합니다. 그러나 이익은 항상 같은 값으로 설정됩니다. 다음은 이익 계산 코드입니다.
if (Tip_tp == en_TP_po_atr) // ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp = NormalizeDouble ( iATR ( NULL ,PeriodForWork_sl,atr_sl_period, 1 ), Digits ); // ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif (tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= NormalizeDouble (tp* 1.5 , Digits ); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
tp= NormalizeDouble (tp* Point , Digits ()); // НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
DanilaMactep : 도움을 주셔서 감사합니다 - 코드 조각 변경 - 모든 것이 작동했습니다. 하지만 눈으로 미리 볼 수 없기 때문에 실수가 무엇인지 말로 설명 할 수 있습니까?
당신의 코드가 공유됩니다
В этой части кода ты задаешь tp значение АТРif (Tip_tp == en_TP_po_atr) // ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp = NormalizeDouble ( iATR ( NULL ,PeriodForWork_sl,atr_sl_period, 1 ), Digits ); // ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif (tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= NormalizeDouble (tp* 1.5 , Digits ); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
А в этой части ты обнуляешь предыдущее действие и задаешь непонятно что...
tp= NormalizeDouble (tp* Point , Digits ()); // НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ
친절하게 제공된 코드로 첫 번째 Expert Advisor를 구축했습니다( MakarFX _ 동기 부여 및 코드 제공).
모든 것이 제대로 작동하지만 하나의 잼만 있으면 됩니다. 지식이 부족하여 잼을 어디에서 찾아야하는지 이해할 수 없습니다.
알고리즘은 다음과 같습니다.
신호가 있습니다 - 주문을 엽니다
스톱으로 마감하거나 포인트를 가져오거나 예금 통화 CountLoss 및 CountProfit의 손익 한도에 도달할 때. (먼저 오는 것)
stop이 marit가 있는 다음 주문인 경우, take, CountProfit, CountLoss 인 경우 - lot이 시작 순서로 재설정됩니다.
따라서 손실 한도인 CountLoss까지 닫을 때 다음 주문은 시작 로트가 아니라 가장 작은 로트로 열립니다. 예를 들면 다음과 같습니다.
외부 변수에서 시작 로트는 0.02로 설정되고 CountLoss를 사용하면 다음 주문은 로트 0.01이 됩니다.
누구든지 오류가 어디에 있는지 말해 줄 수 있습니까?
친절하게 제공된 코드로 첫 번째 Expert Advisor를 구축했습니다( MakarFX _ 동기 부여 및 코드 제공).
모든 것이 제대로 작동하지만 하나의 잼만 있으면 됩니다. 지식이 부족하여 조인트를 어디에서 찾아야하는지 이해할 수 없습니다.
알고리즘은 다음과 같습니다.
신호가 있습니다 - 주문을 엽니다
스톱으로 마감하거나 포인트를 가져오거나 예금 통화 CountLoss 및 CountProfit의 손익 한도에 도달할 때. (먼저 오는 것)
stop이 marit가 있는 다음 주문인 경우, take, CountProfit, CountLoss 인 경우 - lot이 시작 순서로 재설정됩니다.
따라서 손실 한도 - CountLoss 까지 닫을 때 다음 주문은 시작 로트가 아니라 가장 작은 로트로 열립니다. 예를 들면 다음과 같습니다.
외부 변수에서 시작 로트는 0.02로 설정되고 CountLoss를 사용하면 다음 주문은 로트 0.01이 됩니다.
누구든지 오류가 어디에 있는지 말해 줄 수 있습니까?
이중 Lot() 함수에서 내가 무엇을 변경했는지 보십시오.
거래 손실이 발생하면 한 번 인쇄합니다.
덕분에 아이디어를 얻었습니다. 나는 현재 주문의 마감 시간과 이전 주문의 마감 시간을 비교했고 모든 것이 원래대로 진행되었습니다. 별 도움이 되지는 않았지만 스톱로스로 반대 방향으로 오더를 여는 기능도 해봤습니다.
더 구체적으로...
좋은 오후에요 여러분. 이익 계산을 구현하고 atr 표시기를 중지하려고 합니다. 중지는 잘 작동합니다. 그러나 이익은 항상 같은 값으로 설정됩니다. 다음은 이익 계산 코드입니다.
이익이 항상 같은 가치라는 사실이 잘못된 것은 무엇입니까? 오오?
좋은 오후에요 여러분. 이익 계산을 구현하고 atr 표시기를 중지하려고 합니다. 중지는 잘 작동합니다. 그러나 이익은 항상 같은 값으로 설정됩니다. 다음은 이익 계산 코드입니다.
이익이 항상 같은 값이라는 오류는 무엇입니까? 오오?
이중 Lot() 함수에서 내가 무엇을 변경했는지 보십시오.
감독자! 덕분에 도움이되었습니다!
도움을 주셔서 감사합니다 - 코드 조각 변경 - 모든 것이 작동했습니다. 하지만 눈으로 미리 볼 수 없기 때문에 실수가 무엇인지 말로 설명 할 수 있습니까?
당신의 코드가 공유됩니다
비밀번호를 변경하고 재부팅했는데 아무 일도 일어나지 않습니다.
프로그램은 로그에 다음을 씁니다.
2021.08.23 11:54:18.236 MQL5 시장 제품 다운로드 실패 'MACD Intraday Trend' ( www.mql5.com :443 send failed [426: ])
안부 인사, 올가