dodo

UniswapV2周边合约学习(五)-- ExampleFlashSwap.sol

房东的猫 提交于 2020-10-27 14:52:02
记得朋友圈看到过一句话,如果Defi是以太坊的皇冠,那么Uniswap就是这顶皇冠中的明珠。Uniswap目前已经是V2版本,相对V1,它的功能更加全面优化,然而其合约源码却并不复杂。本文为个人学习UniswapV2源码的系列记录文章。 一、ExampleFlashSwap合约介绍 该合约为利用UniswapV2交易对中的FlashSwap的先借后还特性,在买卖资产的同时和UnisapV1交易对进行交易,利用价格差进行套利。 二、ExampleFlashSwap合约源码 pragma solidity = 0.6 .6 ; import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.sol' ; import '../libraries/UniswapV2Library.sol' ; import '../interfaces/V1/IUniswapV1Factory.sol' ; import '../interfaces/V1/IUniswapV1Exchange.sol' ; import '../interfaces/IUniswapV2Router01.sol' ; import '../interfaces/IERC20.sol' ; import '../interfaces/IWETH.sol' ;

SuperTrend V.1 超级趋势线系统

人盡茶涼 提交于 2020-07-28 11:36:15
一、故事由来 我的好朋友燃哥观察了这个指标很久,在元旦以前推荐给我,讨论是否可以转化成量化。 可惜拖延症犯了,一直拖到现在才来帮他完成这样一个心愿,其实也是最近对算法的领悟突飞猛进。 估摸着某一天写一个pine的翻译器。一切皆可python。。 好了废话不多说,我们来介绍一下这个传说中的超级趋势线。。 二、系统介绍 CMC Markets 新一代智能交易系统 —— 超级趋势线(Supertrend) 这里有一篇文章介绍这个系统。 在CMC Markets中的新一代智能交易系统中,在技术指标中选取“超级趋势线”调取即可使用, 如图中所示,可以根据自身喜好对上涨的信号、下跌的信号调节“颜色和粗细”。 那么什么是超趋势指标?在理解超趋势指标公式之前,理解ATR是必要的,因为超趋势使用ATR值来计算指标值。 其中的主要算法下面也有一张图来介绍 大致看一下,主要描述是HL2(k线均价)乘以n倍ATR的通道。做趋势突破。 但文章写得比较简略。没有详细的算法。随后我想到了最牛的社区Tradingview。 果不奇然。上面果然有。 从图上看,还是比较切合趋势的。但可惜的是它只是一个Alert的报警信号。 三、学习源码 看着代码还不算太长,那我们就翻译过来试一下吧。!(っ•̀ω•́)っ✎⁾⁾! 完整pine代码如上。。 四、代码转化 这里我们在FMZ新建一个策略,起名SuperTrade

JavaScript 开发必须掌握技能(二)- 更好的使用数组方法

扶醉桌前 提交于 2020-04-13 16:32:24
【今日推荐】:为什么一到面试就懵逼!>>> 数组是用于储存多个相同类型数据的集合,JavaScript 开发中数组开发是必须掌握技能,工作学习中没少和数组打交道,所以重中之重必须掌握,以下是数组中常用方法及实例。 数组常用操作 1、创建数组   直接定义数组项方法;   构造函数 new Array ( 'Apple' , 'Banana' ) ;    定义一个空数组,我们在push进想要的数组项。 const fruits = ['Apple', 'Banana' ] console.log(fruits); // [ 'Apple', 'Banana' ] console.log(fruits.length); // 3 2、访问(索引到)数组项 通过下标定位到数组项, JavaScript数组的索引为零:数组的第一个元素在index 0 ,最后一个元素在index等于数组l ength 属性 值 减去1。但是 使用无效的索引号将返回 undefined 。 console.log(fruits[0]) // Apple console.log(fruits[fruits.length-1]) // Banana 3、遍历数组 Array.forEach() ,遍历数组的方法很多,我将在往后的随笔中更新。 fruits.forEach( function (item,