交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
广告位
查看: 3385|回复: 1

[系统] 求助!请大佬帮看下,这EA为么不开单

[复制链接]

3

主题

106

积分

0

精华

见习操盘手

金钱
106 美元
权重
0
发表于 2024-1-22 14:02 | 显示全部楼层 |阅读模式
extern int Pips = 50;
extern double Lots = 0.1;
int g_file_88;
bool gi_92=true;
bool gi_96 = FALSE;
int gi_100 = 999999;
int gi_104 = 0;
int gi_108;
int gi_112 = 0;
int gi_116 = 0;
double gd_120;

int GetTime(int ai_0) {
   FileSeek(g_file_88, ai_0 + 148, SEEK_SET);
   int li_4 = FileReadInteger(g_file_88);
   return (li_4);
}

int FindTimePlace(int ai_0) {
   int li_4;
   int li_8;
   int li_12 = 0;
   int li_16 = FileSize(g_file_88) - 148 - 44;
   int li_20 = GetTime(li_12);
   int li_24 = GetTime(li_16);
   while (li_20 < ai_0 && ai_0 < li_24) {
      li_8 = (li_12 + li_16) / 2;
      li_8 -= li_8 % 440;
      if (li_8 == li_12) break;
      li_4 = GetTime(li_8);
      if (ai_0 >= li_4) {
         li_12 = li_8;
         li_20 = GetTime(li_12);
      } else {
         li_16 = li_8;
         li_24 = GetTime(li_16);
      }
   }
   if (ai_0 <= li_24) {
      FileSeek(g_file_88, li_12 + 148, SEEK_SET);
      return (1);
   }
   return (0);
}

void init() {
   g_file_88 = FileOpenHistory(Symbol() + Period() + ".hst", FILE_BIN|FILE_READ);
   if (g_file_88 > 0) gi_92 = TRUE;
   else {
      gi_92 = FALSE;
      return;
   }
   gi_92 = FindTimePlace(Time[0]);
   if (!gi_92) FileClose(g_file_88);
}

void deinit() {
   if (gi_92) FileClose(g_file_88);
}

int GetPrices(int &ai_0, int &ai_4, int &ai_8) {
   ai_0 = FileReadInteger(g_file_88);
   FileSeek(g_file_88, 8, SEEK_CUR);
   ai_4 = FileReadDouble(g_file_88) / Point + 0.1;
   ai_8 = FileReadDouble(g_file_88) / Point + 0.1;
   FileSeek(g_file_88, 16, SEEK_CUR);
   if (FileTell(g_file_88) + 44 <= FileSize(g_file_88)) return (1);
   return (0);
}

int GetTimeTrade(double &ad_0) {
   int li_8;
   int li_12;
   int li_16;
   while (true) {
      if (!GetPrices(li_8, li_12, li_16)) return (-1);
      if (gi_96) {
         if (li_16 > gi_104) {
            gi_104 = li_16;
            gi_108 = li_8;
            continue;
         }
         if (gi_104 - li_12 < Pips) continue;
         gi_96 = FALSE;
         gi_100 = li_12;
         ad_0 = gi_104 * Point;
         break;
      }
      if (li_12 < gi_100) {
         gi_100 = li_12;
         gi_108 = li_8;
         continue;
      }
      if (li_16 - gi_100 < Pips) continue;
      gi_96 = TRUE;
      gi_104 = li_16;
      ad_0 = gi_100 * Point;
      break;
   }
   int li_ret_20 = gi_108;
   gi_108 = li_8;
   return (li_ret_20);
}

void CloseOrder(int a_ticket_0) {
   OrderSelect(a_ticket_0, SELECT_BY_TICKET);
   if (OrderType() == OP_BUY) {
      OrderClose(a_ticket_0, OrderLots(), Bid, 0);
      return;
   }
   OrderClose(a_ticket_0, OrderLots(), Ask, 0);
}

int ReverseOrder(int a_ticket_0) {
   if (a_ticket_0 == 0) a_ticket_0 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, 0, 0);
   else {
      OrderSelect(a_ticket_0, SELECT_BY_TICKET);
      if (OrderType() == OP_BUY) {
         OrderClose(a_ticket_0, OrderLots(), Bid, 0);
         a_ticket_0 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, 0);
      } else {
         OrderClose(a_ticket_0, OrderLots(), Ask, 0);
         a_ticket_0 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, 0, 0);
      }
   }
   return (a_ticket_0);
}

void System() {
   if (gi_116 == 0) gi_116 = GetTimeTrade(gd_120);
   else
      if (gi_116 < 0) return;
   if (Time[0] == gi_116) {
      if (NormalizeDouble(Bid - gd_120, Digits) == 0.0) {
         gi_116 = GetTimeTrade(gd_120);
         if (gi_116 < 0) {
            CloseOrder(gi_112);
            return;
         }
        gi_112 = ReverseOrder(gi_112);
      }
   }
}

void OnTick() {
   if (gi_92) {
      System();
      return;
   }
}

0

主题

1万

积分

0

精华

操盘专家

金钱
14720 美元
权重
0
发表于 2024-1-24 00:07 | 显示全部楼层
再研究,研究!
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2021 fx3q.com Powered by Discuz! X3
皖ICP备: 2024050410号-2

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

快速回复 返回顶部 返回列表