gpt4 book ai didi

c++ - 如何将一个数字分成几个不等但递增的数字[用于发送 PlaceOrder( OP_BUY,lots ) 合约 XTO ]

转载 作者:行者123 更新时间:2023-11-30 20:29:11 29 4
gpt4 key购买 nike

我尝试创建一个 MQL4 脚本(一种几乎与 C++ 相关的语言,MQL4),我想在其中double 值分为 9 个部分,其中分数不相等,但增加

我当前的代码尝试这样做(伪代码):

   Lots1 = 0.1;
Lots2 = (Lots1 / 100) * 120;//120% of Lot1
Lots3 = (Lots2 / 100) * 130;//130% of Lot2
Lots4 = (Lots3 / 100) * 140;//140% of Lot3
Lots5 = (Lots4 / 100) * 140;//140% of Lot4
Lots6 = (Lots5 / 100) * 160;//160% of Lot5
Lots7 = (Lots6 / 100) * 170;//170% of Lot6
Lots8 = (Lots7 / 100) * 180;//180% of Lot7
Lots9 = (Lots8 / 100) * 190;//190% of Lot8
...

或更好:

double Lots = 0.1;   // a Lot Size
double lot = Lots;
...
/* Here is the array with percentages of lots' increments
in order */
int AllZoneLots[8] = { 120, 130, 140, 140, 160, 170, 180, 190 }; // 120%, 130%,...

/* Here, the lot sizes are used by looping the array
and increasing the lot size by the count */
for( int i = 0; i < ArraySize( AllZoneLots ); i++ ) {
lots = AllZoneLots[i] * ( lots / 100 ) *;
// PlaceOrder( OP_BUY, lots );
}

但是,我想要的是将固定值 6.7 分成 9 部分,就像这些代码所做的那样,但值会增加,而不是相同......例如,6.7 分为:

double lots = { 0.10, 0.12, 0.16, 0.22, 0.31, 0.50, 0.85, 1.53, 2.91 };
/* This is just an example
of how to divide a value of 6.7 into 9, growing parts

最佳答案

这样做可以使值相等的步长。如果有 9 个步长,则将该值除以 45 以获得第一个值,以及等于步长 x。为什么?因为 1..9 的和是 45。

x = 6.7 / 45

即 0.148889

第一项是x,第二项是2 * x,第三项是3 * x等等。它们相加到45 * x,即6.7,但最好除最后。因此,第二项将为 6.7 * 2/45;

以下代码展示了如何在 C 中完成此操作,因为 MQL4 使用 C 语法:

#include <stdio.h>

int main(void) {
double val = 6.7;
double term;
double sum = 0;
for(int i = 1; i <= 9; i++) {
term = val * i / 45;
printf("%.3f ", term);
sum += term;
}
printf("\nsum = %.3f\n", sum);
}

程序输出:

0.149 0.298 0.447 0.596 0.744 0.893 1.042 1.191 1.340 
sum = 6.700

关于c++ - 如何将一个数字分成几个不等但递增的数字[用于发送 PlaceOrder( OP_BUY,lots ) 合约 XTO ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825820/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com