佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: ethanchow

在大马IT工程师有前途吗

[复制链接]
发表于 6-7-2024 07:20 PM | 显示全部楼层
aquamax 发表于 6-7-2024 06:12 PM
可能现代化了,安迪手抄然后回家进system

直接用手机下单了,外加一粒bluetooth printer,买了直接打印收据~



回复

使用道具 举报


ADVERTISEMENT

发表于 6-7-2024 07:26 PM | 显示全部楼层
tornado 发表于 6-7-2024 07:15 PM
不是我不要看,而是看了对我没有意义,
字体又朦又小,整7-8个loop,至少也要trace了,才能看到data flow ...

你给出的才几行? 你的有data flow ? 我又敢作出回应?

我的一百行以上你一点都看不出也回应不了? 宽以律己,严以待人, 明显是找借口而已!



回复

使用道具 举报

发表于 6-7-2024 07:30 PM | 显示全部楼层
lcw9988 发表于 6-7-2024 07:26 PM
你给出的才几行? 你的有data flow ? 我又敢作出回应?

我的一百行以上你一点都看不出也回应不了? 宽以律 ...

你找回那个教你的人帮你看吧,周末我去追剧更爽~


回复

使用道具 举报

发表于 6-7-2024 07:32 PM | 显示全部楼层
本帖最后由 lcw9988 于 6-7-2024 07:35 PM 编辑
tornado 发表于 6-7-2024 07:30 PM
你找回那个教你的人帮你看吧,周末我去追剧更爽~

我无须再问别人, 算法是我的, 我当然知道怎样运行, 现是你没勇气回应啊 !
回复

使用道具 举报

发表于 6-7-2024 07:35 PM | 显示全部楼层
tornado 发表于 6-7-2024 07:20 PM
直接用手机下单了,外加一粒bluetooth printer,买了直接打印收据~

总让人觉得你很熟悉整個操作程序哦
回复

使用道具 举报

发表于 6-7-2024 07:46 PM | 显示全部楼层
lcw9988 发表于 6-7-2024 07:35 PM
总让人觉得你很熟悉整個操作程序哦

我不做非法的,不过我以前的老板有做,

机器编程也不是我的主打,在我的项目里面不到10%~

回复

使用道具 举报

Follow Us
发表于 6-7-2024 07:53 PM | 显示全部楼层
tornado 发表于 6-7-2024 07:46 PM
我不做非法的,不过我以前的老板有做,

机器编程也不是我的主打,在我的项目里面不到10%~

我没说你做啊, 熟悉操作方法並不代表你有做, 别慌 !
回复

使用道具 举报

发表于 7-7-2024 05:56 AM | 显示全部楼层
lcw9988 发表于 6-7-2024 07:53 PM
我没说你做啊, 熟悉操作方法並不代表你有做, 别慌 !

我也没说你说啊,我只是强调非法的,我不碰的~


回复

使用道具 举报


ADVERTISEMENT

发表于 7-7-2024 07:10 AM | 显示全部楼层
本帖最后由 lcw9988 于 7-7-2024 07:34 AM 编辑
tornado 发表于 7-7-2024 05:56 AM
我也没说你说啊,我只是强调非法的,我不碰的~

如果你认为我没说你, 又何必一大早你就做出反应回复我? 嘴巴没说但你这种反应说明你真的有点慌了 !

你嘴巴和行动不一致, 心里有鬼越描起黑了, 哈~
回复

使用道具 举报

发表于 7-7-2024 08:43 AM | 显示全部楼层
lcw9988 发表于 7-7-2024 07:10 AM
如果你认为我没说你, 又何必一大早你就做出反应回复我? 嘴巴没说但你这种反应说明你真的有点慌了 !

你 ...

我一向来早睡早起,整理好我的工作,就会来看看贴子,回复贴子,
历史回复记录可看,行得正,坐得直~

其实有时候,一根手指指向他人时,三个手指是指向自己的~



回复

使用道具 举报

发表于 7-7-2024 09:20 AM | 显示全部楼层
本帖最后由 lcw9988 于 7-7-2024 09:31 AM 编辑
tornado 发表于 7-7-2024 08:43 AM
我一向来早睡早起,整理好我的工作,就会来看看贴子,回复贴子,
历史回复记录可看,行得正,坐得直~:love ...

哈哈~  我几时说你做过和指向你了? 到目前为止, 我一直也都这么认为你没做, 你上一个帖已強调我没说过,  又忘了?

我也没说你说啊,我只是强调非法的,我不碰的~

但你的反应让人觉得你在意, 没做过的人不必在意的, 坐得直不直只有自己知道, 再说一次, 我不是说你啊 !

回复

使用道具 举报

发表于 7-7-2024 10:24 AM 来自手机 | 显示全部楼层
tornado 发表于 6-7-2024 09:13 AM
不就高频交易分析程式,问题是你能给出一个理由,我为什么要去了解你的程序?

老实说,你程序的var n ...

虽然不懂,但总觉得你好像对的。

是不是类似一个 portable 的 hdd,
假如 enclosure 接电脑的 cable 是可拆,坏了可以买回同样的 cable 更换。
假如 enclosure 接电脑的 cable 是一体,坏了就得更换整个 enclosure。

编程也是如此,是这样解吗?
回复

使用道具 举报

发表于 7-7-2024 10:34 AM | 显示全部楼层
本帖最后由 lcw9988 于 7-7-2024 11:29 AM 编辑
Dogs1985 发表于 7-7-2024 10:24 AM
虽然不懂,但总觉得你好像对的。

是不是类似一个 portable 的 hdd,

我的软件是自用的, 每一个细节自己很清楚, 不必什么模块式, 要改能精准直接去改那一部份, 不必什么 subroutine/sub module的.

用multi threading.....更快!
回复

使用道具 举报

发表于 7-7-2024 02:51 PM | 显示全部楼层
Dogs1985 发表于 7-7-2024 10:24 AM
虽然不懂,但总觉得你好像对的。

是不是类似一个 portable 的 hdd,

是的,把他分解出来的好处很多,除了readability和maintainability,还有一个重要的reusability,这是编程的基本概念~

我给你一个简单的例子,如果我要写一个程序,把2个数目做一个算法,以下是没有sub function的做法:
  1. class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         int a = 5;
  6.         int b = 10;
  7.         int sum1 = a + b;
  8.         Console.WriteLine("Result: " + sum1);

  9.         int c = 7;
  10.         int d = 3;
  11.         int sum2 = c + d;
  12.         Console.WriteLine("Result: " + sum2);
  13.     }
  14. }
复制代码

以下是有sub function的做法:
  1. class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         Console.WriteLine("Result: " + Calculate(5, 10));
  6.         Console.WriteLine("Result: " + Calculate(7, 3));
  7.     }

  8.     static int Calculate(int num1, int num2)
  9.     {
  10.         return num1 + num2;
  11.     }
  12. }
复制代码

虽然两个都给出了同样的结果,不过第2个方法明显聪明多了,
他不止让程式的行数变少了,而且读起来也很舒服(readability),
我们更可以在程式任何地方,使用这个Calculate()的function (reusability),
要改formula也方便,譬如我要改去乘,就把num1 + num2改去num1 * num2,
我们不用去找每一行来改(maintainability),工作也变轻松了~

回复

使用道具 举报

发表于 7-7-2024 03:48 PM | 显示全部楼层
本帖最后由 lcw9988 于 7-7-2024 07:28 PM 编辑
tornado 发表于 7-7-2024 02:51 PM
是的,把他分解出来的好处很多,除了readability和maintainability,还有一个重要的reusability,这是编 ...

別拿简单的例子忽悠外行人啦, 简单的当然容易简化啦, 我的代码像你说的这么简单吗? 整10个loops 环环相扣 :-

1) 要怎样简化? 谁能简化这10 loops又证实快20%我愿意付5万, 快50%以上我付10万 ! 讲到做到 !
2) 说到你这么历害, 为什么没有勇气向我代码给出评论和回应?

用我的例子, 要改的就score那两行, 再写一个 subroutine就是浪费时间 !   


  1.         
  2.     std::random_device rd;     // only used once to initialise (seed) engine
  3.     std::mt19937 rng(rd());    // random-number engine used (Mersenne-Twister in this case)
  4.     std::uniform_int_distribution<int> uni(1, 99); // guaranteed unbiased
  5.         int const1 = 0;
  6.         long ns = 0;
  7.         for (int s = 1; s <= trial8; s++) { ////START OF TRIALS
  8.                 cout << s << endl;
  9.                 //long share[14][4] = { 0 };
  10.                 for (int i = 1; i <= cardreq; i++) {
  11.                         auto random_integer = uni(rng);
  12.            
  13.             int r = random_integer;
  14.             long temp = b[i];
  15.             b[i] = b[r];
  16.             b[r] = temp;

  17.             long temp1 = bsx[i];
  18.             bsx[i] = bsx[r];
  19.             bsx[r] = temp1;
  20.                 }
  21.                 for (int i = 0; i <= 5; i++) {
  22.                         codes201[i] = 0;
  23.                         codes101[i] = 0;
  24.                         codes41[i] = 0;
  25.                         codes15[i] = 0;
  26.                         codes11[i] = 0;
  27.                         codes9[i] = 0;
  28.                         codes7[i] = 0;
  29.                         codes5[i] = 0;
  30.                         codes3[i] = 0;
  31.                         codes1[i] = 0;
  32.                         codes[i] = 0;
  33.                         codes1[i] = 0;
  34.                         codes3[i] = 0;
  35.                         ev[i] = 0;
  36.                 }
  37.                 culev[0] = 0;
  38.                 culev[1] = 0;
  39.                 culev[2] = 0;
  40.                 culev[3] = 0;
  41.                 culev[4] = 0;
  42.                 culev[5] = 0;
  43.                 for (int i = 1; i <= 4; i++) {
  44.                         for (int j = 2; j <= 14; j++) {
  45.                                 share[j][i] = 1;
  46.                         }
  47.                 }
  48.                 for (int i = 1; i <= 5; i++) {
  49.                         a[i] = b[i];
  50.                         sx[i] = bsx[i];
  51.                         share[a[i]][sx[i]] = 0;
  52.                         pm[i] = 0;
  53.                
  54.                 }
  55.                 for (int i = 11; i <= (KLno + 1) * 5; i++) {  ///' REMOVE OTHER KLSE share FROM THE share
  56.                         if (KLno > 1) {
  57.                                 share[b[i]][bsx[i]] = 0;
  58.                         }
  59.                 }

  60. ///////
  61.                 long nss = 0;               
  62.                
  63.                 for (int ds = 1; ds <= 26; ds++) {    //////////aaaaaaaaaaaaaaaaaa - START
  64.                         ns = 0;
  65.                         if (share[px[ds]][qx[ds]] > 0){    //////////bbbbbbbbbbbbbbbbbb - START
  66.                                 nss = nss + 1;
  67.                                 share[px[ds]][qx[ds]] = share[px[ds]][qx[ds]] - 1;
  68.                                 
  69.                                 for (int h = 1 * dm[5]; h <= (99 * dm[5]); h++) {
  70.                                         if (share[px[h]][qx[h]] > 0) {
  71.                                                 if (h > 0) {
  72.                                                         a[10] = px[h];
  73.                                                         sx[10] = qx[h];
  74.                                                 }
  75.                                                 for (int g = (h + 1) * dm[4]; g <= 99 * dm[4]; g++) {
  76.                                                         if (share[px[g]][qx[g]] > 0) {
  77.                                                                 if (g > 0) {
  78.                                                                         a[9] = px[g];
  79.                                                                         sx[9] = qx[g];
  80.                                                                 }
  81.                                                                 for (int f = (g + 1) * dm[3]; f <= 99 * dm[3]; f++) {
  82.                                                                         if (share[px[f]][qx[f]] > 0) {
  83.                                                                                 if (f > 0) {
  84.                                                                                         a[8] = px[f];
  85.                                                                                         sx[8] = qx[f];
  86.                                                                                 }
  87.                                                                                 for (int e = (f + 1) * dm[2]; e <= 99 * dm[2]; e++) {
  88.                                                                                        
  89.                                                                                         if (share[px[e]][qx[e]] > 0) {
  90.                                                                                                 if (e > 0) {
  91.                                                                                                         a[7] = px[e];
  92.                                                                                                         sx[7] = qx[e];
  93.                                                                                                 }

  94.                                                                                                 if (nss == 1 || h < ds) {
  95.                                                                                                         ns = ns + 1;
  96.                                                                                                         Lmt1 = 2;
  97.                                                                                                         Lmt2 = 2;
  98.                                                                                                         ////fpoints
  99.                                                                                                         for (int m = Lmt1; m <= Lmt2; m++) {
  100.                                                                                                                 if (m == 1) {


  101.                                                                                                                         else {
  102.                                                                                                                                         score = Cvalue[5] + Cvalue[4] / 100 + Cvalue[3] / 10000 + Cvalue[2] / 1000000 + Cvalue[1] / 100000000;
  103.                                                                                                                                 }
  104.                                                                                                                         }
  105.                                                                                                                         else {
  106.                                                                                                                                 int count = 1;
  107.                                                                                                                                 for (int p = 2; p <= 14; p++) {
  108.                                                                                                                                         if (point1[p] == 1) {
  109.                                                                                                                                                 Cvalue[count] = p;
  110.                                                                                                                                                 point1[p] = 0;
  111.                                                                                                                                                 count = count + 1;
  112.                                                                                                                                         }
  113.                                                                                                                                 }
  114.                                                                                                                                 if (Cvalue[5] == 14 && Cvalue[4] == 5 && Cvalue[3] == 4 && Cvalue[2] == 3 && Cvalue[1] == 2) {
  115.                                                                                                                                         Cvalue[5] = 5;
  116.                                                                                                                                         Cvalue[4] = 4;
  117.                                                                                                                                         Cvalue[3] = 3;
  118.                                                                                                                                         Cvalue[2] = 2;
  119.                                                                                                                                         Cvalue[1] = 1;
  120.                                                                                                                                 }
  121.                                                                                                                                 if ((Cvalue[5] - Cvalue[1]) == 4){ ///Net EARN
  122.                                                                                                                                         if (Cvalue[5] < 14) {
  123.                                                                                                                                                 score = 500 + Cvalue[5];
  124.                                                                                                                                         }
  125.                                                                                                                                         else {
  126.                                                                                                                                                 score = 600 + Cvalue[5];
  127.                                                                                                                                         }
  128.                                                                                                                                 }
  129.                                                                                                                                 else { /// EARN
  130.                                                                                                                                         score = 200 + Cvalue[5] + Cvalue[4] / 100 + Cvalue[3] / 10000 + Cvalue[2] / 1000000 + Cvalue[1] / 100000000;
  131.                                                                                                                                 }
  132.                                                                                                                         }
  133.                                                                                                                 } ////BBBBBB END
  134.                                                                                                                 scores[m] = score; ////scores(m) = Round(score, 8)
  135.                                                                                                         } /////////zzzzzzz END
  136.                                                                                                         dpoint[ds][ns] = scores[2];
  137.                                                                                                 }else{
  138.                                                                                                         ns = ns + 1;
  139.                                                                                                         dpoint[ds][ns] = dpoint[const1][ns];
  140.                                                                                                 }
  141.                                                                                         }
  142.                                                                                 }
  143.                                                                         }
  144.                                                                 }
  145.                                                         }
  146.                                                 }
  147.                                         }
  148.                                 }
  149.                                 const1 = ds;                           
  150.                                 share[px[ds]][qx[ds]] = share[px[ds]][qx[ds]] + 1;
  151.                         }  ///////bbbbbbbbbbbbbbbb - END
  152.                 } ////////aaaaaaaaaaaaaaaaaa - END               
  153.                
复制代码





回复

使用道具 举报

发表于 7-7-2024 10:02 PM | 显示全部楼层
lcw9988 发表于 7-7-2024 03:48 PM
別拿简单的例子忽悠外行人啦, 简单的当然容易简化啦, 我的代码像你说的这么简单吗? 整10个loops 环环相扣  ...

难者不会,会者不难,你说不能简化,是因为你不懂简化~

这个程式是你自己写,还是之前那个教你的人写的,然后你优化的?
你把shuffle arrays,reset codes,initialize array(shares)和simulation code全部混在一起
其实这些都可以分解出来的~

给你个例子:
int main() {
  ...
  for (int s = 1; s <= trial8; s++) {
        shuffleArrays(b, bsx, rng);
        std::array<long, 6> codes201 = {0}, codes101 = {0}, codes41 = {0}, codes15 = {0}, codes11 = {0}, codes9 = {0},
                            codes7 = {0}, codes5 = {0}, codes3 = {0}, codes1 = {0}, codes = {0}, ev = {0}, culev = {0};
        resetCodes(codes201, codes101, codes41, codes15, codes11, codes9, codes7, codes5, codes3, codes1, codes, ev, culev);
        initializeShares(share);
        performSimulation(share, b, bsx, a, sx, pm, px, qx, dm, scores, dpoint, ns, const1);
  }
}
void shuffleArrays() {...}
void resetCodes() {...}
void initializeShares() {...}
void performSimulation() {...}

我是从编程的角度,来分析你的程式,
不要问我那些formula,我是不会答你的,那是你应该懂的,
这世上有千百种应用,不见得我每个都要去分析了解,
而且我也不是做你这行的,你明白吗?


回复

使用道具 举报


ADVERTISEMENT

发表于 7-7-2024 10:15 PM | 显示全部楼层
本帖最后由 lcw9988 于 7-7-2024 10:58 PM 编辑
tornado 发表于 7-7-2024 10:02 PM
难者不会,会者不难,你说不能简化,是因为你不懂简化~

这个程式是你自己写,还是之前那个教你的人 ...

廢话, 当然是我写的啦 !

笑死人, 你说的这些都是constant, 读一次就行了, 还优化什么? 这样你也看不出, 别搞笑啦

你说的优化的意思是要排列整齐让别人容易看出來怎样运行和以后怎样修改, 挑剔一些根本对我无关疼癢的东西, 我说的优化的意思是以更快速度算出结果 ! 明白吗?


回复

使用道具 举报

发表于 8-7-2024 08:39 AM | 显示全部楼层
lcw9988 发表于 7-7-2024 10:15 PM
廢话, 当然是我写的啦 !

笑死人, 你说的这些都是constant, 读一次就行了, 还优化什么? 这样你也看不出,  ...

我说的是简化,不是优化,优化是问你这段程序,是不是别人的写的,然后你去优化?

我会一直回复你,也是因为你的这个破烂程序对这个贴,有讨论价值~

程式简化后,就比较整洁了,要做什么一目了然,维护也更轻松,

  • shuffleArrays(b, bsx, rng);
  • resetCodes(codes201, codes101, codes41, codes15, codes11, codes9, codes7, codes5, codes3, codes1, codes, ev, culev);
  • initializeShares(share);
  • performSimulation(share, b, bsx, a, sx, pm, px, qx, dm, scores, dpoint, ns, const1);


一般情况下,我们主要focus在主程式performSimulation()的6个loops就可以了~
  1. for (int ds = 1; ds <= NUM_TRIALS; ds++) {
  2.     for (int h = 1 * dm[5]; h <= 99 * dm[5]; h++) {
  3.         for (int g = (h + 1) * dm[4]; g <= 99 * dm[4]; g++) {
  4.             for (int f = (g + 1) * dm[3]; f <= 99 * dm[3]; f++) {
  5.                 for (int e = (f + 1) * dm[2]; e <= 99 * dm[2]; e++) {
  6.                     if (nss == 1 || h < ds) {
  7.                         for (int m = Lmt1; m <= Lmt2; m++) {
  8.                             // Perform calculations
  9.                         }
  10.                     }
  11.                 }
  12.             }
  13.         }
  14.     }
  15. }
复制代码

其实你这个程式这么多nested loop是不正常的,应该尝试restructuring你的logic,说不定还可以找到优化的契机噢~

我已经把饭捧到你桌上了,再把饭喂到你嘴巴,就难看了~

回复

使用道具 举报

发表于 8-7-2024 09:19 AM | 显示全部楼层
本帖最后由 lcw9988 于 8-7-2024 09:38 AM 编辑
tornado 发表于 8-7-2024 08:39 AM
我说的是简化,不是优化,优化是问你这段程序,是不是别人的写的,然后你去优化?

我会一直回复你 ...

第一, 再重复一次, 这8个到l10个oop当然是我原创我写的, 然后叫人优化, 这个是要用到深奥数学, 没几个码農会, 帮我的人也优化估计不到10%, 提醒一下, 看到你的回复这么多次都没提到重点, 99%肯定你也不会, 只会一直重复说简化, 整洁,维护 . . . .blah blah说一些对我没用的东西, 这些是专业码農做的, 我又不是专业码農, 我是自用我不会care这些 !


第二, 这么多nested loop不正常? 你知道我的公式要算什么吗? 你不会或没见过就说不正常? 你住在一个小盒子吗?  你继续秀下限让笑掉大牙吧 !

第三, 为什么你删除这四个, 删除就叫简化? 删除还能算出我要的结果吗? 你太好笑了, 现在的所谓的砖业码農原来是把删除当成简化的, 根本不知道整个完整algorithm, 就删除, 删除,删除 . . . 然后就没有然后了 !




回复

使用道具 举报

发表于 8-7-2024 09:37 AM | 显示全部楼层
lcw9988 发表于 8-7-2024 09:19 AM
第一, 再重复一次, 这8个到l10个oop当然是我原创我写的, 然后叫人优化, 这个是要用到深奥数学, 没几个码 ...

我当然知道你是想show off你那些复杂的HFT数学逻辑

万变不离其宗,难者不会,会者不难,比这些程序复杂几倍的,我都看过,

你现在最大的问题是对编程没有概念,哪怕是叫人帮你改,把他简化,就是优化的第一步,

还有你必须去找对HFT编程有丰富经验的程序员帮你优化,

没有必要显摆,这边绝对不会有人会崇拜你~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-7-2025 03:15 PM , Processed in 0.149122 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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