php 大神和会excell宏的大神来看看

excell 宏的代码在下面 如何用php语言写尼?
以下是从数据库读出来的36条数据

array(36) {
  [0]=>
  array(9) {
    ["q_id"]=>
    string(1) "1"
    ["u_id"]=>
    string(1) "5"
    ["now_mony"]=>
    string(9) "137500.00"
    ["my_shouyi_lv"]=>
    string(6) "0.0000"
    ["date_time"]=>
    string(10) "2016-07-26"
    ["shang_zhishu"]=>
    string(7) "3050.17"
    ["shang_shouyi_lv"]=>
    string(6) "0.0000"
    ["max_huice_lv"]=>
    NULL
    ["max_huice_qi"]=>
    NULL
  }
  [1]=>
  array(9) {
    ["q_id"]=>
    string(1) "2"
    ["u_id"]=>
    string(1) "5"
    ["now_mony"]=>
    string(9) "127958.00"
    ["my_shouyi_lv"]=>
    string(7) "-0.0690"
    ["date_time"]=>
    string(10) "2016-07-27"
    ["shang_zhishu"]=>
    string(7) "2992.00"
    ["shang_shouyi_lv"]=>
    string(7) "-0.0190"
    ["max_huice_lv"]=>
    NULL
    ["max_huice_qi"]=>
    NULL
  }

以下是ecxell宏

Sub 最大回撤()

zuigaol = 137500      '最高资产变量
huichedi = 137500     '回撤低点变量

zuidahuiche = 0       '最大回撤变量

j = 0                 '最大回撤期判断变量



For i = 3 To 153

    If Range("g" & i) >= zuigaol And j = 0 Then  '如果当天资产大于最高资产,则更新最高资产变量,记录最大回撤的起始日期,否则记录回撤低点,计算回撤率
    
        zuigaol = Range("g" & i)
        zuigaor = Range("f" & i)
        
    Else
    
        huichedi = Range("g" & i)
        
        huiche = (huichedi - zuigaol) / zuigaol
    End If
    

    
    If huiche < zuidahuiche Then                '如果回撤率小于最大回撤率,则更新最大回撤率变量,标记j=1表示开始最大回撤期计算周期
    
        zuidahuiche = huiche
        
        j = 1
        
        
    
    End If
    
    If j = 1 Then                                 '如果在最大最大回撤期计算周期内,计算最大回撤期
    
        zuidahuicher = Range("f" & i) - zuigaor
    
    End If

    If Range("g" & i - 1) < zuigaol And Range("g" & i) >= zuigaol And j = 1 Then     '如果前一天资产低于最高资产当天资产高于最高资产,且在最大回撤期计算期内,标记j=0,表示结束最大回撤期计算
    
                
        j = 0
    
    End If
    
   
Next


Range("k6") = zuidahuiche

Range("k7") = Round(zuidahuicher / 30, 1) & "个月"



End Sub
阅读 2.8k
1 个回答

非常不好意思,不会php,我写python。python思路如下

df.columns = ['open','high','low','close']
df.index.name = 'date'
close = df.sort_index()['close']
begin_close = close.tolist[0]

close_list = close.tolist[1:]

close_end = np.array(close_list)[close_list >= begin_close]][0]
// 上式多了一个],不然显示不了)

// (然后用close_end 对应的日期 - begin_close对应的日期) / begin_close
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题