混乱中有规律可循吗?让我们试着找出它!以特定样本为例进行机器学习。 - 页 5

 
elibrarius #:
我们需要一个准确的财务结果来避免误差。 Fin. res. 如果我们选择 0(您不能将其包括在内,它将始终是 0),如果是 1,如果是 -1.即使标记为 0 类,也不要进行交易。模型会出错,有必要知道错误的代价。

决定进场方向的不是模型,因此如果方向有误,就不会进场,因此也不会亏损。

 
Aleksey Vyazmikin #:

决定进场方向的不是模型,因此如果方向错误,就不会进场,也就不会有损失。

我写的是 0 级,有时会预测为 1 或 -1 级。你写的是财务结果未知。

 
Aleksey Vyazmikin #:

决定进入方向的不是模式

如果不是模型决定的,那就没有必要教。

 
elibrarius #:

我写的是 "0 "类,有时会预测为 "1 "或"-1"。你写的是他的财务结果未知。

只是不要放弃方向。

如果类别为 0,方向为 +1,并且被归类为 1,那么就会有损失 - 取任何一列与财务结果相乘。

如果类别为零,方向为+1,但被归类为-1,则不会有进项和损失。

如果类别为零,方向为-1,且被归类为-1,则会出现亏损 - 取财务结果为模数的任意一列。

如果类别为零,方向为-1,并且被归类为 1,则不会有进项,也不会有损失。

elibrarius#:

如果不是模型决定的,就没有理由教。

这里的逻辑很简单--一些预测因子,甚至它们的值,更倾向于价格运动的某个特定方向。当我们把所有东西都按 1 类和 0 类一起讲授时,我们基本上是在选择决定任何一个方向的强烈运动的预测因子--通常这样的预测因子并不多,但如果我们给每个方向都划分出自己的类别,一些统计上的矛盾就会消失,而且模型已经可以包含一个预测因子在其值的不同端点的指标,例如 RSI 70/30 可以很容易地分开。

从理论上讲,零级是平的,因此每个方向都应该足够相似。同样,我将样本一次性分为两部分--按进入方向,这改善了学习结果--即符合盈利阈值标准的模型比例更高。

 
Aleksey Vyazmikin #:

如果等级为 0,方向为 +1,而它被归类为 -1,则不会有输入,也不会有损失。

老师可以不入市。但模型会犯错,进入市场。模型从老师那里并不知道 0 和 +1,它收到的预测是 -1,因此会交易

 
elibrarius #:

老师可能不会进入。但模型会犯错误,进入市场。或者,您是否有一个条件运算符,禁止模型按照它的预测进行交易?恐怕我无处安放这样的运算符来建立平衡。

目前还没有运算符,但有相关数据,而且都写在 "Target_P "栏中,所以一切都能顺利进行。

下面是我草拟的建立余额的代码逻辑示例

int Prognoz=0;//Сюда запишем прогноз
int Target_100[];//Фактическая целевая
int Target_P[];//Тип сделки - покупка/продажа
double Target_100_Buy[];//Финансовый результат от покупки
double Target_100_Sell[];//Финансовый результат от продажи
double Fin_Rez[];//Финансовый результат
int Strok_Total=0;//Всего строк
int Index_Fin_Rez=1;//Считаем число классифицированных 1 и -1 - это размер массива баланса и индекс массива Fin_Rez
ArrayResize(Target_100,Strok_Total);
ArrayResize(Target_P,Strok_Total);
ArrayResize(Target_100_Buy,Strok_Total);
ArrayResize(Target_100_Sell,Strok_Total);
ArrayResize(Fin_Rez,Strok_Total);
ArrayInitialize(Fin_Rez,0);
/*
Прочли данные файла в массивы - не знаю как реализовано у Вас
*/
for(int i=0; i<Strok_Total; i++)
{
/*
Сделали прогноз
*/
   if(Prognoz==-1 && Target_P[i]==-1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Sell[i];
      Index_Fin_Rez++;
   }
   if(Prognoz==1 && Target_P[i]==1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Buy[i];
      Index_Fin_Rez++;
   }
}
ArrayResize(Fin_Rez,Index_Fin_Rez);
 
Aleksey Vyazmikin #:

目前还没有操作符,但有数据,而且数据已写入 "Target_P "列,因此一切都很顺利。

下面是我绘制的建立平衡的代码逻辑示例

模型只能根据预测进行交易。如果您使用教师计算结果,这就是在窥视未来。只能根据预测进行交易。在真实的未来,您不会有 Target_100_Sell。

模型不会从老师那里了解 0 和 +1,它会得到 -1 预测并进行交易。您只需要知道每个预测变量的财务结果。

 
elibrarius #:

模型只能根据预测进行交易。如果用老师的方法计算结果,那就是在窥视未来。交易只能根据预测进行。

模型不会从老师那里知道 0 和 +1,它会得到 -1 预测并进行交易。您只需要知道每个预测变量的财务结果。

这和偷看有什么关系。我们改变目标是为了提高学习效率,而不是改变 EA 的逻辑。我们的逻辑是,在没有模型的情况下,我们知道进入的方向,而模型应该告诉我们是否应该进入。

 
Aleksey Vyazmikin #:

模型就会告诉你是否要进去。

我们已经检查过了。

 
elibrarius #:

我们已经查过了。

听着,我们有入市点 - 样本线,我们有由出市点定义的财务结果,即设置止损或其他信号的地方。如果您想违背策略入市,即在模型认为应该卖出的地方买入,那么您就需要定义新的出场点。问题来了,如果退出点还没有出现,但进入点已经出现,这时该怎么办?