The Forex environment is a forextrading simulator featuring: configurable initial capital, dynamic or dataset-based spread, CSV history timeseries for tradingcurrencies and observations for the agent, fixed or agent-controlled take-profit, stop-loss and order volume.
The environment features discrete action spaces and optionally continuousaction spaces if the orders dont have fixed take-profit/stop-loss and ordervolume.
A concatenation of num_ticks vectors for the lastest:vector of values from timeseries, equity and its variation,order_status( -1=closed,1=opened),time_opened (normalized withmax_order_time), order_profit and its variation, order_drawdown/order_volume_pips, consecutive_drawdown/max_consecutive_dd
discrete action 0: 0=nop,1=close,2=buy,3=sell
discrete action 0 parameter: symbol
(optional) continuous action 0 parameter: percent_tp, percent_sl,percent_max
The reward function is the average of the area under the curve of equity and thebalance variation.
The datasets used for the tests were generated with a MQL4 program located in theagents folder (Pending documentation).
Install Python, pip, OpenAI Gym and other dependencies:
sudo apt-get install -y python3-numpy python3-dev cmake zlib1g-dev libjpeg-dev xvfb ffmpeg libboost-all-dev libsdl2-dev python3-pip git gcc make perl
pip3 install graphviz neat-python gitpython gym neat-python matplotlib
git clone https://github.com/harveybc/gym-forex
Set the PYTHONPATH venvironment variable, you may add the following line to the .profile file in your home directory to export on start of sessions. Replace with your username.
export PYTHONPATH=/home/username/gym-forex/:${PYTHONPATH}
cd gym-forex
nano agents/config
Configure the population size and other parameters according to your computingcapacity or requirements, start with the defaults.
nano res
For example:
#!/bin/bash
git pull
python3 agents/agent_NEAT.py ./datasets/ts_5min_1w.CSV ./datasets/vs_5min_1w.CSV config_20
After editing, change the permission of the file to be executable:
chmod 777 res
./res
https://vjudge.net/problem/Gym-101512J 按题意模拟。 给定一个机器人。开始方向为->. 给定四个单词代表前进方向,前进的时候头也会跟着变。从初始点出发最后一定会回来,问你输出他的路径。 (考虑到最后一定会回来,那么直接模拟就好了。其实回来不回来都无所谓。) 开的数组大一点。然后直接暴力。 #include<bits/stdc++.h> using namesp
http://codeforces.com/gym/100971/problem/A 比赛中第一眼就看到这个了,当时以为是简单的搜索就完事了,后来发现还得枚举情况,就想了三种特判的条件,分别把模糊的地方当做陆地和海洋处理,如果都是1 那么就是ambiguous。 如果都大于1或者都等于0 肯定是不可以的。impossible. 其他情况哪个等于1 就置换哪个。 思路是没错的。 错误在搜索的地方,我
题目链接:点击打开链接 题目大意:给出一些矩阵,如果矩阵之间有接触算作一个连通分量,问最大的连通分量的面积为多少? 思路:既然接触即算为一个连通分量,那么我们可以分别讨论他的横边接触和竖边接触。 将横边和竖边分别存储在不同的结构体数组中,然后对数组进行排序,将互相接触的边对应的矩阵放在统一并查集中。 最后统计下所有并查集的面积大小,输出最大的一个即可。 #include<iostream> #in
题目链接:https://vjudge.net/problem/Gym-100520B 解题思路: 算出每个线段的x区间,那么选择一个区间使得选到这里面达到条件的概率是A,也就是选择区间里的满足条件的长度刚好是总长度*A。因为超过是没意义的。那么也就是枚举l左端点,或者r右端点就行了。枚举l的左端点就是在每段线段的可行区间的左端点,枚举r右端点也就是每段可行的右端点。最后注意线段与x轴平行的情
题意: 给定字符串 s s s,设 w w w 为 s s s 的某一子串,若有 w = x n x 0 w = x^nx_0 w=xnx0 且 x 0 x_0 x0 为 x 的前缀,称 ∣ w ∣ ∣ x ∣ \cfrac{|w|}{|x|} ∣x∣∣w∣ 为 w w w 的 c r i t i c a l e x p o n e n t critical~exponent criti
题目链接:https://vjudge.net/problem/Gym-100451F 解题思路: 对于每一对,将较小的放在x,大的放在y。然后将他们以x从小到大得规则放进set中。 在遍历的过程中如果有一对不满足条件,将他调换过来,因为y是大于x的,所以调换之后这一对肯定出现在后面,将调换的一对标记为1,如果当某一对标记是1且还不满足条件,说明这一对的任意一种形态都不能,那么就是无解。 满足
比赛 2017-2018 ACM-ICPC Latin American Regional Programming Contest A B C D E F G H I J K L M - Y Y - Y L L Y Z L - - **Z 题解 B 规律题。 如果含有元音字母,最终串中第一个字母必为元音。 演绎翻转操作,维护一个双端队列,若开始向左选择数字,从头部加入,反之从尾部加入。遇到一个元音
题目链接: http://codeforces.com/gym/101473/attachments 题解: 最大生成树+树链剖分+线段树维护最小值 代码: #include <map> #include <cmath> #include <cstdio> #include <vector> #include <cstring> #include <iostream> #include <algo
题意:给你n*m个格子每次添加一条黑线,问这些黑线将白格子分成几个部分。 题解:首先将全部黑线涂上,将每个格子标记在那个块上,对于询问从后往前删除,并将删除之后的白格子赋值为新的块,然后并查集合并,结果就是这次询问的块数。 代码: #include <bits/stdc++.h> using namespace std; const int maxn=1e3+5; int n,m,p; struc
1.题意: 输入一个n行m列的地图,地图上有k种陷阱底座,每种陷阱必须放在相应底座上,并且有一定的花费。有一只兔子初始位置在'B'处,为了使这只兔子不能逃出地图,必须放置一些陷阱来阻拦它。问怎么样放置陷阱花费最小并且使得兔子逃不出去。若拦不住,则输出-1。 2.分析: 问题可以简化一下问题:使得图内点与图外点两部分不联通的最小花费。 可以看出这是典型的最小割问题,所以关键在于怎么建图。图上起点也就
RPG打怪//Gym - 101755H//bfs 题目 You play a new RPG. The world map in it is represented by a grid of n × m cells. Any playing character staying in some cell can move from this cell in four directions — to
A sabotage platoon has completed its mission and planted some bombs on an enemy territory. Now they are about to report to their commanders how many enemy units will be destroyed. They have assigned t
题目 https://cn.vjudge.net/problem/Gym-101550A 题意 问你没涂一次,白块分成多少份 思路 先都涂完,然后到这删除,没删除一块看合并的多少块 代码 #include<bits/stdc++.h> using namespace std; const int maxn = 1e3+10; int mp[maxn][maxn]; int n,m,q; int t
http://codeforces.com/gym/102014/attachments https://vjudge.net/solution/17440614(题解数据: 264ms/1960kB) 题意 给你一个滑块拼图,和一般的不同在于可以从一个边缘跳到另一个边缘。横纵向移动的话费分别位ch,cv。给起始状态和结果状态,求最少花费。 思路 很显然要压缩状态,然后搜索,问题是怎么压怎么搜
H. Safe Path time limit per test 2.0 s memory limit per test 256 MB input standard input output standard output You play a new RPG. The world map in it is represented by a grid of n × m cells. Any pla
题目链接:https://vjudge.net/contest/370255#problem/B 我们考虑每一行每一列会爆炸的概率是多少 显然 对于会爆炸的每一行 位于该行的矩形的长都会爆炸 对于会爆炸的每一列 位于该列的矩形的宽都会爆炸 但是对于 行列都爆炸的但我 我们显然重复计算了 所以要容斥一下 #include<cstdio> #include<algorithm> using na
题目链接:https://vjudge.net/problem/Gym-100519B 解题思路: 如果这题先放置矩形,然后再去查找爆炸的直线与矩形的交,那么还要容斥,似乎就做不了了。 那么我们不如先去放爆炸点,离散并算出每条直线会爆炸的总的概率。然后再去查询一个矩形,那么对于竖向爆炸每条的爆炸长度不就是等于矩形的宽吗,横向爆炸每条的长度也就是矩形的长了。然后就需要先预处理要前缀和的横向爆炸概
题目链接<http://codeforces.com/gym/229073/problem/C> 题意: 有一张无向连通图,添加若干条边使图存在欧拉回路。输出任意一种方案。 题解: 无向图存在欧拉回路的判断条件是所有点的度数为偶数。 所以最后的添边方案应该满足:度为奇数的连奇数条边,度为偶数的连偶数条边。 考虑新加的一条链如:1—2—3—4—5,那么链的两端度数加1,链的中间度数加2。所以可以考虑
OpenAI Gym is a toolkit for developing and comparing reinforcement learning algorithms. It makes no assumptions about the structure of your agent, and is compatible with any numerical computation libr
Gym StarCraft 是阿里开源的一套专业易用的研究平台,AI 和强化学习研究者可以非常方便地使用 Python 语言来进行深度强化学习智能 Agent 的开发,它底层完成了对 TorchCraft 和 OpenAI Gym 的封装,支持基于 TensorFlow 和 Keras 等主流算法框架进行开发,仅需几十行代码即可完成一个基本的智能 Agent 的开发。 同时,便于评测智能 Agen
OpenAI Gym 是一个用于开发和比较强化学习算法的工具包。 gym 不对代理的结构做任何假设,并且与任何数值计算库兼容,例如 TensorFlow 或 Theano。 有关 OpenAI Gym 的白皮书,请访问 http://arxiv.org/abs/1606.01540,这里有一个 BibTeX 条目,可以在出版物中引用它: @misc{1606.01540, Author = {G
问题内容: 我制作了一个便签程序,可以帮助您学习JavaFX。它通过XML保存该类,并在启动时查找XML文件,并将其添加到名为AllCards的NoteCardSet类型的ArrayList,即NoteCards的ArrayList。有了这个,我制作了许多动态按钮,使它们宽了4列。这是该代码: 显然,这可以在JavaFX中创建,但是可以在FXML中创建吗? 问题答案: 不,您不能在FXML中执行此
问题内容: 我有JavaFX 2.0应用程序,它由两个FXML文件和两个用于它们的控制器+一个“主” .java文件组成。 在开始时,将初始化FXML1,如下所示: 然后,当单击来自scene1的按钮时,在Controller1类的事件处理程序中,我更改了scene1的根目录,以为用户显示新的GUI视图。然后在此控制器中初始化一些对象。例如这样: 而且,在那之后,我必须在下一个场景中对该对象进行一
问题内容: 如何在FXML文档中为视图提供不同的语言以支持许多国家? 问题答案: 用小号来存储区域设置相关的文本,并使用访问包中的数据。 具体来说,为您要支持的每种语言创建文本文件,并将其放在类路径中。该对的Javadoc对命名方案的细节,但你应该有一个默认包通过定义和捆绑其他语言和变形的定义。例如(目录位于类路径的根目录中): 资源/UIResources.properties: 资源/UIRe