设为首页 收藏本站 切换语言

谁能帮忙搞个算法

| 发表于 2023-7-21 18:26:51 | 显示全部楼层 |复制链接
就是在不同的价位开了一堆不同手数的单子,现在想在一个统一的价格止损,如果设定一个统一止损的金额(比如所有单子总亏损达到100刀),如何提前计算出这个止损的价格?

用文字描述出这个计算方式就行(要考虑到单子里面可能多空单都有,还要考虑点差)

符合条件者 10H币 酬谢
举报

评论 使用道具

精彩评论18

gesoros
DD
| 发表于 2023-7-21 19:27:20 | 显示全部楼层
什么算法
举报

点赞 评论 使用道具

My05613828
CCC
| 发表于 2023-7-21 19:31:14 | 显示全部楼层
直接上提示   有帮助 转我币   myxdsl  

double 交易类::多盈亏返回价格(string 币种,int magic,double long_profit)
  {
   double long_sl_price=0;
   int long_orders = 持仓单数统计(币种,magic,OP_BUY);
   if(long_orders > 0)
     {
      double long_price_mean = 持仓均价(币种,magic,OP_BUY);
      double long_lots = 持仓仓位统计(币种,magic,OP_BUY);
      if(long_lots>0)
         long_sl_price = long_profit * 点值(币种)/long_lots + long_price_mean;
     }
   return long_sl_price;
  }
举报

点赞 评论 使用道具

My05613828
CCC
| 发表于 2023-7-21 19:34:25 | 显示全部楼层

设置一个金额              返回止损价格
举报

点赞 评论 使用道具

gesoros
DD
| 发表于 2023-7-21 19:42:42 | 显示全部楼层
myxdsl 发表于 2023-7-21 19:34
设置一个金额              返回止损价格

这个很简单啊,我有自己写的工具
举报

点赞 评论 使用道具

My05613828
CCC
| 发表于 2023-7-21 19:49:41 | 显示全部楼层
gesoros 发表于 2023-7-21 19:42
这个很简单啊,我有自己写的工具

嗯轮子多了 我多得是
举报

点赞 评论 使用道具

鲫鱼
DD
| 发表于 2023-7-21 19:52:56 来自手机 | 显示全部楼层
我有工具有这个功能,免费的,你要吗?
举报

点赞 评论 使用道具

海贝
DD
| 发表于 2023-7-21 20:12:02 | 显示全部楼层
myxdsl 发表于 2023-7-21 19:31
直接上提示   有帮助 转我币   myxdsl  

double 交易类::多盈亏返回价格(string 币种,int magic,double lo ...

持仓均价怎么计算?
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-21 20:13:17 | 显示全部楼层
myxdsl 发表于 2023-7-21 19:31
直接上提示   有帮助 转我币   myxdsl  

double 交易类::多盈亏返回价格(string 币种,int magic,double lo ...

有帮助,再问一下持仓均价怎么计算?
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-21 20:13:44 | 显示全部楼层
gesoros 发表于 2023-7-21 19:42
这个很简单啊,我有自己写的工具

可否提供算法?
举报

点赞 评论 使用道具

liaixia688
未及格
| 发表于 2023-7-21 20:56:44 | 显示全部楼层
找我就行
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-21 21:07:18 | 显示全部楼层

有就直接发出来啊
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-21 21:53:05 | 显示全部楼层
myxdsl 发表于 2023-7-21 19:49
嗯轮子多了 我多得是

已转,但没完全解决我的问题,不知道在多空单都存在的情况下如何计算持仓均价
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-22 10:50:22 | 显示全部楼层
还有人帮忙吗?
举报

点赞 评论 使用道具

no1temp
DDD
| 发表于 2023-7-23 12:40:04 | 显示全部楼层
其实不需要计算所有订单的平均价格,只需要设置一个外部变量,比如“止损全平金额”即可。假设止盈为正,止损为负,提前设置“止损全平金额=-100”,那么当“多单+空单<=止损全平金额”时,多空全部平仓就行了。不会写代码,提供一下思路供参考。
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-23 20:56:59 | 显示全部楼层
no1temp 发表于 2023-7-23 12:40
其实不需要计算所有订单的平均价格,只需要设置一个外部变量,比如“止损全平金额”即可。假设止盈为正,止 ...

你这个是实时监控浮亏达到多少金额平仓,不是我想要的。 我的意思是提前计算浮亏达到一定金额时价格是多少? 我差不多已经写出来了
举报

点赞 评论 使用道具

My05613828
CCC
| 发表于 2023-7-25 09:47:20 | 显示全部楼层
wangddtt 发表于 2023-7-21 20:13
有帮助,再问一下持仓均价怎么计算?

v我 my05613828
double 交易类::持仓均价(string 币种,int magic,string 注释,int 持仓方向)
  {
   double 持仓均价=0;
   double  总手数开盘价积=0;
   double  持仓总手数=0;
   for(int j=OrdersTotal()-1; j>=0; j--)
     {
      if(OrderSelect(j,SELECT_BY_POS)&&持仓类型())
        {
         if(OrderTicket()>0)
           {
            magic=魔术幻数(magic);
            if(OrderSymbol()==币种&&OrderMagicNumber()==magic&&OrderComment()==前缀+注释
               &&OrderType()==持仓方向)
              {
               总手数开盘价积+=OrderOpenPrice()*OrderLots();
               持仓总手数+=OrderLots();
               if(持仓总手数>0)
                  持仓均价=总手数开盘价积/持仓总手数;
              }
           }
        }
     }
   return(持仓均价);
  }
//+------------------------------------------------------------------+
举报

点赞 评论 使用道具

My05613828
CCC
| 发表于 2023-7-25 09:48:10 | 显示全部楼层
wangddtt 发表于 2023-7-21 21:53
已转,但没完全解决我的问题,不知道在多空单都存在的情况下如何计算持仓均价 ...

double 交易类::净持仓均价(string 币种,int magic,string 注释)
  {
   double 多均价=持仓均价(币种,magic,注释,OP_BUY);
   double 空均价=持仓均价(币种,magic,注释,OP_SELL);
   double 多总仓位=持仓仓位统计(币种,magic,注释,OP_BUY);
   double 空总仓位=持仓仓位统计(币种,magic,注释,OP_SELL);
   double 浮亏均价=0;
   if(多总仓位-空总仓位!=0)
      浮亏均价=(多均价*多总仓位-空均价*空总仓位)/(多总仓位-空总仓位);
   return 浮亏均价;
  }
//+------------------------------------------------------------------+
举报

点赞 评论 使用道具

wangddtt
CC
 楼主 | 发表于 2023-7-27 13:45:44 | 显示全部楼层
myxdsl 发表于 2023-7-25 09:48
double 交易类::净持仓均价(string 币种,int magic,string 注释)
  {
   double 多均价=持仓均价(币种,ma ...

谢谢,解决了
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)