googleのスプレットシートで以前作成しましたが、少し強引な方法で作成しました。
(子本体の間隔が5Pipsの時など計算したかった)
グルグルトレインの必要資金
今回は、googleのスプレットシートのスクリプトで作成し「計算」図形クリックで結果を表示するような感じで作成。(図形にスクリプトを割り当てることができます)
前回のMax1000Pipsまでの制限も解除、間隔のPips指定などは、変更せず1Pips単位で指定可能。
スクリプトのコードは以下です。そんなにテストしてないので不具合ありかも?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//ポジション数 | |
var P1,P2,P3,P4; | |
var wP1=1,wP2=1,wP3=0,wP4=1; | |
//子本体、サポート別小計 | |
var c1,c2,c3,c4; | |
var wc1=0,wc2=0,wc3=0,wc4=0; | |
//必要運用資金など出力用 | |
var total; | |
/*----グルトレ計算機----*/ | |
//pips 変動Pips | |
//leverage レバレッジ | |
//rate レート | |
//cspsce 子本体間隔 | |
//cprofit 子本体利確 | |
//clot 子本体ロット | |
//sspsce サポート間隔 | |
//slot サポートロット | |
function GRTR(){ | |
//1. 現在のスプレッドシートを取得 | |
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); | |
//2. 現在のシートを取得 | |
var sheet = spreadsheet.getActiveSheet(); | |
//. 指定するセルの範囲(C5)を取得 | |
var range = sheet.getRange("C5"); | |
//. 値を取得する | |
var leverage = range.getValue(); | |
//. 指定するセルの範囲(E5)を取得 | |
var range = sheet.getRange("E5"); | |
//. 値を取得する | |
var rate = range.getValue(); | |
//. 指定するセルの範囲(C8)を取得 | |
var range = sheet.getRange("C8"); | |
//. 値を取得する | |
var cspsce = range.getValue(); | |
//. 指定するセルの範囲(D8)を取得 | |
var range = sheet.getRange("D8"); | |
//. 値を取得する | |
var cprofit = range.getValue(); | |
//. 指定するセルの範囲(E8)を取得 | |
var range = sheet.getRange("E8"); | |
//. 値を取得する | |
var clot = range.getValue(); | |
//. 指定するセルの範囲(C9)を取得 | |
var range = sheet.getRange("C9"); | |
//. 値を取得する | |
var sspsce = range.getValue(); | |
//. 指定するセルの範囲(E9)を取得 | |
var range = sheet.getRange("E9"); | |
//. 値を取得する | |
var slot = range.getValue(); | |
//. 指定するセルの範囲(C11)を取得 | |
var range = sheet.getRange("C11"); | |
//. 値を取得する | |
var pips = range.getValue(); | |
var i; | |
for(i=1;i<=pips;i++){ | |
P1= Math.floor((i+cspsce)/cspsce); | |
P2= Math.floor((i+sspsce)/sspsce); | |
if(i<cprofit) P3=0; else P3=Math.floor((i-cprofit+cspsce)/cspsce); | |
P4=P1-P3; | |
if(wP1==P1) c1=P1*clot; else c1=wP1*clot; | |
if(wP2==P2) c2=P2*slot; else c2=wP2*slot; | |
if(wP4==P4) c4=P4*clot; else c4=wP4*clot; | |
if(wP3==P3) c4=c4; else c4=c4-cprofit*clot; | |
wP1=P1;wP2=P2;wP3=P3;wP4=P4; | |
wc1=wc1+c1;wc2=wc2+c2;wc4=wc4+c4; | |
} | |
wc3=wP3*cprofit*clot; | |
//指定するセルに結果を出力 | |
total=(wc1+wc2-wc3-wc4)*100000*0.01+(wP1*clot+wP2*slot)*rate*(100000/leverage); | |
var range = sheet.getRange("E11").setValue(total); | |
total=(wc1)*100000*0.01; | |
var range = sheet.getRange("E16").setValue(total); | |
total=(wc2)*100000*0.01; | |
var range = sheet.getRange("E17").setValue(total); | |
total=(wc3)*100000*0.01; | |
var range = sheet.getRange("E14").setValue(total); | |
total=(wc4)*100000*0.01; | |
var range = sheet.getRange("E15").setValue(total); | |
total=(wP1*clot+wP2*slot)*rate*(100000/leverage); | |
var range = sheet.getRange("E18").setValue(total); | |
return; | |
} |
0 件のコメント :
コメントを投稿