Каждая торговая стратегия нуждается в объективной оценке ее эффективности. Для этого используется обширный ряд статистических параметров. Многие из них просты в расчете и показывают интуитивно понятные метрики. Другие сложнее в построении и в интерпретации значений. Несмотря на все это многообразие, есть очень мало качественных метрик для...
Трейдеры часто задаются вопросом о том, как улучшить торговую систему или создать новую за счет машинного обучения. Несмотря на обилие публикаций, остается открытым вопрос о простом и интуитивно понятном способе создания моделей, которые невозможно аналитически просчитать без использования компьютерных вычислений. Нечеткая логика — это окно в...
불행히도 현재로서는 기계 학습에 익숙하지 않습니다. 그리고 가까운 장래에 나는 그것을 마스터하지 않을 것입니다.
균형 표시기는 빠른 연속 최적화를 위해 사용하도록 계획되었습니다. 불행히도 각 전문가에 대해 균형 표시기의 아날로그와 매개 변수를 열거하는 스크립트를 만들어야 합니다. 자동 최적화 를 위해 이러한 알고리즘을 로봇에 넣는 것이 현실적이라고 생각합니다. 원칙적으로 이것은 자체 제작 수준에서만 기계 학습일 수도 있습니다.
어쩌면 나도 거기에 갈 것이다.
그러던 중 갑자기 누군가가 찾아온다. MT4용 균형 표시기.
int start()
{
int i;
int counted_bars= IndicatorCounted ();
//----if ( Bars <= 3 ) return ( 0 );
if (PRED_CHISLO_BAROV == Bars ) return ( 0 );
i= Bars - 1 ; // i присваиваем значение числа баров .if (counted_bars> 1 ) i= Bars -counted_bars- 1 ; // while (i>= 0 )
{
//================================================================================================================================================================================================
MacdCurrent = iCustom ( NULL , 0 , "_________________" ,
0 ,i);
MacdPrevious = iCustom ( NULL , 0 , "_______________" ,
0 ,i+ 1 );
SignalCurrent = iCustom ( NULL , 0 , "_____________" ,
1 ,i);
SignalPrevious = iCustom ( NULL , 0 , "_____________" ,
1 ,i+ 1 );
MacdCurrent_Trend = iCustom ( NULL , 0 , "______________" ,
0 ,i);
MacdPrevious_Trend = iCustom ( NULL , 0 , "___________________" ,
0 ,i+ 1 );
SignalCurrent_Trend = iCustom ( NULL , 0 , "__________________" ,
1 ,i);
if (Trend_InpSignalSMA== 0 ) SignalCurrent_Trend = 0 ;
SignalPrevious_Trend = iCustom ( NULL , 0 , "_______________" ,
1 ,i+ 1 );
if (Trend_InpSignalSMA== 0 ) SignalPrevious_Trend = 0 ;
//================================================================================================================================================================================================// Оцениваем в какой позиции мы стояли бы по трендовому MACD И назначаем Trend =1 восходящий =-1 низходящийif (
MacdPrevious_Trend < 0 && //1) основная линия MACD ниже 0
MacdCurrent_Trend > SignalCurrent_Trend && MacdPrevious_Trend < SignalPrevious_Trend && //2) основная линия только что пересекла сигнальную с низу в верхMathAbs (MacdPrevious_Trend) > (Trend_MACDOpenLevel* Point ) //3) основная линия ниже заданного для открытия значения
) Trend = 1 ;
if (
MacdPrevious_Trend > 0 && // 1) основная линия MACD выше 0
MacdCurrent_Trend < SignalCurrent_Trend && MacdPrevious_Trend > SignalPrevious_Trend && //- основная линия только что пересекла сигнальную с низу в верхMathAbs (MacdPrevious_Trend) > (Trend_MACDOpenLevel* Point ) // - основная линия выше заданного для открытия значения
) Trend =- 1 ;
//================================================================================================================================================================================================//РАСЧЕТ ЛИНИИ БАЛАНСА.// Закрываем позицию SELLif (
(
Posic == - 1 && // Если открыта позиция SELL
MacdPrevious < 0 && // 1) основная линия MACD ниже 0
MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && //- основная линия только что пересекла сигнальную с низу в верхMathAbs (MacdPrevious) > (Ind_MACDCloseLevel* Point ) // - основная линия ниже заданного для закрытия значения
) || (
Posic == - 1 && (Cena_0 - Open [i])/ Point * Naprav >= TakeProfit
) || (
Posic == - 1 && ( Open [i] - Cena_0)/ Point * Naprav >= StopLoss
)
)
{
if ( Cena_0 > 0 ) Balans = Balans +(Cena_0 - Open [i])/ Point * Naprav ;
Cena_0 = 0 ; Posic = 0 ; Capital = 0 ;
}
// Открываем позицию BUYif (
Trend == 1 &&
Posic == 0 && // Если позиция зарыта
MacdPrevious < 0 && // 1) основная линия MACD ниже 0
MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && //- основная линия только что пересекла сигнальную с низу в верхMathAbs (MacdPrevious) > (Ind_MACDOpenLevel* Point ) // - основная линия ниже заданного для открытия значения
)
{ Cena_0 = Open [i]; Posic = 1 ; Balans = Balans - Spred; }
// Закрываем позицию BUYif (
(
Posic == 1 && // Если открыта позиция BUY
MacdPrevious > 0 && // 1) основная линия MACD выше 0
MacdCurrent < SignalCurrent && MacdPrevious > SignalPrevious && //- основная линия только что пересекла сигнальную с верх в низу MathAbs (MacdPrevious) > (Ind_MACDCloseLevel* Point ) // - основная линия выше заданного для закрытия значения
) || (
Posic == 1 && (Cena_0 - Open [i])/ Point * Naprav >= StopLoss
) || (
Posic == 1 && ( Open [i] - Cena_0)/ Point * Naprav >= TakeProfit
)
)
{
if ( Cena_0 > 0 ) Balans = Balans +( Open [i] - Cena_0)/ Point * Naprav ;
Cena_0 = 0 ; Posic = 0 ; Capital = 0 ;
}
// Открываем позицию SELLif (
Trend == - 1 &&
Posic == 0 && // Если позиция зарыта
MacdPrevious > 0 && // 1) основная линия MACD выше 0
MacdCurrent < SignalCurrent && MacdPrevious > SignalPrevious && //- основная линия только что пересекла сигнальную с верх в низу MathAbs (MacdPrevious) > (Ind_MACDOpenLevel* Point ) // - основная линия выше заданного для открытия значения
)
{ Cena_0 = Open [i]; Posic = - 1 ; Balans = Balans - Spred; }
a1_Buffer[i]= Balans;
//================================================================================================================================================================================================//РАСЧЕТ ЛИНИИ ТЕКУЩЕГО КАПИТАЛЛА.// При открытой позиции BUYif ( Posic > 0 )
{
if ( Cena_0 > 0 ) Capital = (( Open [i] - Cena_0)/ Point * Naprav) ;
}
// При открытой позиции SELLif ( Posic < 0 )
{
if ( Cena_0 > 0 ) Capital = ((Cena_0 - Open [i])/ Point * Naprav) ;
}
a2_Buffer[i]= Balans + Capital;
//================================================================================================================================================================================================// a3_Buffer[i]= //================================================================================================================================================================================================// a4_Buffer[i]=//================================================================================================================================================================================================//================================================================================================================================================================================================if (i >= Bars -(TOCHKA_VHODA* 2 )) Cena_0 = 0 ; //
i--; PRED_CHISLO_BAROV = Bars ;
}
//----return ( 0 );
}
//+------------------------------------------------------------------+
추신. 지점에 유사한 지표의 예를 추가해 주시면 감사하겠습니다. 그가 베끼고 있는 Expert Advisor와 함께라면 더 좋습니다.
글쎄, ODA에 대차 대조표의 현재 매개 변수를 계산합니다. 역사의 깊이, 그리고 그것이 나쁘면 라이브로 수정하고 곡선을 다시 관찰하십시오 .. 최적이 될 때까지 그 다음 다시 악화되기 시작할 때까지 거래하고 다시 매개 변수를 통해 .. 백 테스트는 물론입니다. 이 경우 오래
균형 표시기를 만든 경험이 있습니다. 그러면 초매개변수를 만드는 데 더 가까워질까요?
실제 관계가 없으면 도움이되지 않을 수도 있습니다. 사실 이것은 MO에서 모두가 의아해하는 질문입니다. :)
실제 관계가 없다면 도움이되지 않을 수도 있습니다 .. 사실 이것은 MO에서 모든 사람들이 궁금해하는 질문입니다. :)
:)
만일의 경우를 대비 하여 잔고 표시기(하단 창)의 그림입니다 .
부드러운 단계 균형, 녹색 선은 의미합니다.
:)
만일의 경우를 대비하여 잔고 표시기(하단 창)의 그림입니다.
부드러운 단계 균형, 녹색 선은 의미합니다.
오오오!
+
:)
만일의 경우를 대비하여 잔고 표시기(하단 창)의 그림입니다.
부드러운 단계 균형, 녹색 선은 의미합니다.
균형은 절대적인 조건 이 아니라 예를 들어 현재의 이익 요소가 필요합니다. 즉, 어떻게 든 일정을 정상화
그런 다음 예를 들어 퍼지 논리 또는 뉴런을 통해 이 변수를 나머지 부분과 이미 연결할 수 있습니다.
R^2 큰 도움이 됩니다
https://www.mql5.com/en/articles/2358
그런 다음 지표와 R^2를 입력 용어로 추가한 다음 변수 간의 상호 작용 규칙을 언어적으로 설명하고 출력에서 신호를 얻습니다.
이것은 예입니다. 뉴런을 사용할 수 있지만(기사도 있음) 퍼지 논리는 이러한 작업에 대해 더 유연하고 직관적인 것으로 보이며 뉴런 또는 매개변수처럼 최적화할 수도 있지만 입력이 더 적습니다.
https://www.mql5.com/en/articles/3795
메시지 주셔서 감사합니다.
불행히도 현재로서는 기계 학습에 익숙하지 않습니다. 그리고 가까운 장래에 나는 그것을 마스터하지 않을 것입니다.
균형 표시기는 빠른 연속 최적화를 위해 사용하도록 계획되었습니다. 불행히도 각 전문가에 대해 균형 표시기의 아날로그와 매개 변수를 열거하는 스크립트를 만들어야 합니다. 자동 최적화 를 위해 이러한 알고리즘을 로봇에 넣는 것이 현실적이라고 생각합니다. 원칙적으로 이것은 자체 제작 수준에서만 기계 학습일 수도 있습니다.
어쩌면 나도 거기에 갈 것이다.
그러던 중 갑자기 누군가가 찾아온다. MT4용 균형 표시기.
추신. 지점에 유사한 지표의 예를 추가해 주시면 감사하겠습니다. 그가 베끼고 있는 Expert Advisor와 함께라면 더 좋습니다.
그리고 속어 없이? :))))))))
글쎄, ODA에 대차 대조표의 현재 매개 변수를 계산합니다. 역사의 깊이, 그리고 그것이 나쁘면 라이브로 수정하고 곡선을 다시 관찰하십시오 .. 최적이 될 때까지 그 다음 다시 악화되기 시작할 때까지 거래하고 다시 매개 변수를 통해 .. 백 테스트는 물론입니다. 이 경우 오래
고맙습니다.
거기에서만 백만 개의 핸들을 얻을 수 있으며 전문가 본문의 모든 지표를 다시 작성해야 합니다.