(2)Setelah sinyal BP dikirim, BARSBP garis K kembali ke jumlah periode dari garis K untuk posisi pembelian dan penutupan ke garis K saat ini. Jika kondisi BARSBP>=1 terpenuhi, nilainya adalah HHV(H, BARSBP+1), yaitu nilai maksimum posisi pembelian dan penutupan (termasuk garis K saat sinyal penutupan muncul) ke harga tertinggi saat ini. 3.AA:=IFELSE(BARSBP>=1,REF(C,BARSBP),C);//Ambil harga penutupan dari K-line terakhir untuk membeli dan menutup posisi: (1) Ketika BARSBP dari garis K saat ini yang mengirim sinyal BP mengembalikan nol, maka ketika garis K tidak memenuhi kondisi BARSBP>=1, AA kembali ke harga penutupan garis K saat ini. (2) K-line BARSBP setelah sinyal BP dikirim kembali ke nomor periode K-line untuk membeli dan menutup posisi dari K-line saat ini, kemudian AA kembali ke REF ((C, BARSBP), yang merupakan harga penutupan dari K-line penutupan. (3)Sebagai contoh: tiga K-line: 1, 2, dan 3, K-line di 1 adalah K-line saat ini dari sinyal penutupan, kemudian kembali ke harga penutupan dari K-line saat ini, dan K-line AA di 2 dan 3 kembali ke harga penutupan dari K-line di 1. ` `
Mengembalikan jumlah lot sinyal untuk sinyal Sig tetap ke-N yang dihitung mundur dari garis K saat ini (pesanan backhand mengambil jumlah lot posisi terbuka).
Penggunaan:REFSIG_VOL(Sig,N);
Jika tidak ada sinyal sig, atau jika tidak ada sinyal sig tetap, fungsi mengembalikan 0.
Catatan:
1.Sinyal yang didukung oleh posisi Sig adalah:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
Aku tidak tahu.
2.Jika hitungan mundur ke sinyal Sig tetap ke-N berada pada garis K saat ini, maka fungsi kembali ke lot sinyal saat ini.
4.Ketika N adalah 0 atau nol, fungsi mengembalikan 0.
5.Parameter N mendukung variabel.
Contoh:
// If there are 5 K-lines from the current K-line where the third fixed BK signal is located from the bottom of the current K-line, and the number of signal lots is greater than 2, close all positions
REFSIG_PLACE(BK,3)=5&&REFSIG_VOL(BK,3)>2,SP(BKVOL);
Kembali ke harga sinyal dari sinyal Sig tetap ke-N dari awal garis K saat ini.
Penggunaan:REFSIG_PRICE(Sig,N);
Jika tidak ada sinyal Sig, atau jika tidak ada sinyal Sig tetap, fungsi mengembalikan 0.
Catatan:
1.Sinyal yang didukung oleh posisi Sig adalah:BK
, SK
, BP
, SP
, BPK
, SPK
,CLOSEOUT
,STOP
Aku tidak tahu.
2.Jika ada sinyal Sig tetap pada garis K arus, maka ketika fungsi menghitung sinyal, sinyal dari garis K arus disertakan.
3.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
4.Parameter N mendukung variabel.
Contoh:
// If the opening price of the 3rd last fixed BK signal from the current K-line is 3000, and the long position is greater than 0, sell and close the position
REFSIG_PRICE(BK,3)=3000&&BKVOL>0,SP;
Hitung jumlah sinyal X dalam periode N.
Penggunaan:COUNTSIG(X,N);
Hitung jumlah sinyal X dalam periode N.
X bisaBK
, SK
, SP
, BP
, SPK
, BPK
,CLOSEOUT
,STOP
.
Catatan:
1.Selama periode statistik,
(1) Mengandung garis K saat ini.
(2) Jika N adalah 0, maka hitung dari nilai valid pertama.
(3) Ketika N adalah nilai yang valid, tetapi jumlah K-line saat ini kurang dari N, hitung dari yang pertama sampai periode saat ini.
(4) Nilai yang dikembalikan adalah nol ketika N adalah nol.
(5) N bisa menjadi variabel.
2.Ketika menghitung sinyal:
(1) Metode pelaksanaan sinyal dipilih sebagai sinyal konfirmasi setelah garis K selesai atau tinjauan setelah garis K selesai (misalnya: tulis CHECKSIG(SIG,
Contoh:
N:=BARSLAST(DATE<>REF(DATE,1))+1;
BKN:=COUNTSIG(BK,N);
MA5:=MA(C,5);
BKN=0&&C>MA5,BK; // There is no BK signal in the day and the latest price is greater than the 5-period moving average, then buy and open a position
Ambil posisi garis K dari sinyal posisi pembukaan yang ditentukan.
Penggunaan:ENTRYSIG_PLACE(N);
Jika tidak ada sinyal untuk membuka posisi, fungsi mengembalikan null.
Catatan:
1.Sinyal untuk membuka posisi adalah:BK
, SK
, BPK
, SPK
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Jika jumlah sinyal terbuka dalam perdagangan lengkap kurang dari N, fungsi mengembalikan nol.
4.Posisi garis K adalah nomor dari garis K saat ini ke garis K di mana sinyal pembukaan yang ditentukan berada.
5.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
6.Parameter N tidak didukung sebagai variabel.
Contoh:
ENTRYSIG_PLACE(3)=5&&BKVOL>0,SP; // If the K-line of the third position opening signal is 5 K-lines away from the current K-line, and the long position is greater than 0, sell and close the position
Ambil harga sinyal posisi terbuka yang ditentukan.
Penggunaan:ENTRYSIG_PRICE(N);
Jika tidak ada sinyal untuk membuka posisi, fungsi mengembalikan nol.
Catatan:
1.Sinyal untuk membuka posisi adalah:BK
, SK
, BPK
, SPK
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Jika jumlah sinyal terbuka dalam perdagangan lengkap kurang dari N, fungsi mengembalikan nol.
4.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
5.Parameter N tidak didukung sebagai variabel.
6.Perhitungan fungsi ini mencakup slippage.
7.Model harga penutupan: Nilai fungsi K-line saat ini dari sinyal yang ditentukan tidak akan berubah.
Model harga perintah: Kembali ke harga sinyal pembukaan ke-N dari perdagangan saat ini pada garis K saat ini dari sinyal yang ditentukan.
Contoh:
ENTRYSIG_PRICE(3)=3000&&BKVOL>0,SP; // If the opening price of the 3rd fixed opening signal is 3000, and the long position is greater than 0, sell and close the position
Ambil lot sinyal dari sinyal pembukaan posisi yang ditentukan.
Penggunaan:ENTRYSIG_VOL(N);
Jika tidak ada sinyal untuk membuka posisi, fungsi mengembalikan nol.
Catatan:
1.Sinyal untuk membuka posisi adalah:BK
, SK
, BPK
, SPK
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Jika jumlah sinyal terbuka dalam perdagangan lengkap kurang dari N, fungsi mengembalikan nol.
4.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
5.Parameter N tidak didukung sebagai variabel.
6.Model harga penutupan: Nilai fungsi garis K saat ini dari sinyal yang ditentukan tidak akan berubah.
Model harga perintah: Pada garis K saat ini dari sinyal yang ditentukan, kembali ke nomor lot sinyal dari sinyal pembukaan ke-N dari perdagangan saat ini.
Contoh:
ENTRYSIG_PRICE(3)=3000&&ENTRYSIG_VOL(3)>2,SP; // If the opening price of the 3rd fixed opening signal is 3000, and the signal lot number of the 3rd fixed opening signal is greater than 2, sell and close the position
Ambil posisi garis K dari sinyal penutupan yang ditentukan.
Penggunaan:EXITSIG_PLACE(N);
, mengambil posisi garis K dari sinyal penutupan ke-N dalam perdagangan lengkap. Jika tidak ada sinyal penutupan, fungsi mengembalikan nol.
Catatan:
1.Sinyal untuk menutup posisi adalah:BP
, SP
, CLOSEOUT
, STOP
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Ketika jumlah sinyal penutupan kurang dari N, fungsi mengembalikan nol.
4.Posisi garis K mengacu pada jumlah garis K dari garis K saat ini ke sinyal penutupan yang ditunjuk.
5.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
6.Parameter N tidak didukung sebagai variabel.
Contoh:
EXITSIG_PLACE(3)=5&&BKVOL<=0,BK; // If the K-line of the third closing signal is 5 K-lines away from the current K-line, and there is no long position, buy to open a position
Ambil harga sinyal posisi penutupan yang ditentukan.
Penggunaan:EXITSIG_PRICE(N);
Jika tidak ada sinyal penutupan, fungsi mengembalikan nol.
Catatan:
1.Sinyal untuk menutup posisi adalah:BP
, SP
, CLOSEOUT
, STOP
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Ketika jumlah sinyal penutupan dalam perdagangan lengkap kurang dari N, fungsi mengembalikan nol.
4.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
5.Parameter N tidak didukung sebagai variabel.
6.Perhitungan fungsi ini mencakup slippage.
7.Model harga penutupan: Nilai fungsi K-line saat ini dari sinyal yang ditentukan tidak akan berubah.
Model harga perintah: Kembali ke harga sinyal pembukaan ke-N dari perdagangan saat ini pada garis K saat ini dari sinyal yang ditentukan.
Contoh:
EXITSIG_PRICE(3)=3000&&BKVOL>0,SP; // If the closing price of the 3rd fixed closing signal is 3000, and the long position is greater than 0, sell and close the position
Ambil lot sinyal dari sinyal posisi penutupan yang ditentukan.
Penggunaan:EXITSIG_VOL(N)
Jika tidak ada sinyal posisi dekat, fungsi mengembalikan nol.
Catatan:
1.Sinyal untuk menutup posisi adalah:BP
, SP
, CLOSEOUT
, STOP
Aku tidak tahu.
2.Posisi dianggap sebagai perdagangan penuh dari saat dibuka sampai dipegang pada nilai 0.
3.Ketika jumlah sinyal penutupan dalam perdagangan lengkap kurang dari N, fungsi mengembalikan nol.
4.Ketika N adalah 0 atau nol, fungsi mengembalikan nol.
5.Parameter N tidak didukung sebagai variabel.
6.Model harga penutupan: Nilai fungsi garis K saat ini dari sinyal yang ditentukan tidak akan berubah.
Model harga perintah: Pada garis K saat ini dari sinyal yang ditentukan, kembali ke nomor lot sinyal dari sinyal penutupan ke-N dari perdagangan saat ini.
Contoh:
EXITSIG_PRICE(3)=3000&&EXITSIG_VOL(3)>2,BK; // If the closing price of the 3rd fixed closing signal is 3000, and the signal lot number of the 3rd fixed closing signal is greater than 2, buy to open the position
Ambil nomor pesanan.
MYVOL take the lot number of orders.
Usage: Take the lot number of orders, it is mostly used for lot calculation when multiple contracts are loaded in the scale in/dump model.
Remark:
Backtesting: Return to the lot size set in the backtesting parameters.
Examples:
// When the order lot size in the loading parameter is set to 3, the order lot size of BK written following is 6
C>O,BK(2*MYVOL);
C<O,SP(BKVOL);
Dana yang tersedia di rekening.
MONEY funds available in the account.
Usage: MONEY returns to the available funds in the account for calculation of positions, lot sizes, etc.
Calculation methods:
1.The initial value of MONEY in the account is the starting capital set in the margin parameters.
2.The initial value of MONEY in the historical backtesting is the initial capital set in the backtesting parameters.
3.The MONEY value of the current K-line of the position opening signal: available funds before opening a position - margin for holding positions - handling fee, where margin for holding positions = opening price * margin ratio * trading unit * lot size.
4.Money value of K-line not closed after opening = money value of K-line before opening signal + floating profit and loss profit.
5.The MONEY value of the current K-line of the closing signal: available funds before closing the position + profit and loss of closing the position + margin released by closing the position - handling fee, where the margin released by closing the position = opening price * margin ratio * trading unit * lot size.
Remarks:
1.The signal execution method is 'confirm the order after the K-line is completed' or 'XX order and review after the K-line is completed':
a.When the signal to open a position is a K-line, the return value of MONEY is the available funds of the previous K-line - margin for opening a position - handling fee.
b.When the closing signal is a K-line, the return value of MONEY is the available funds of the previous K-line + closing profit and loss + margin released by the position - handling fee.
2.Select the signal execution method as 'send a signal to place an order without reviewing':
a.When the signal to open a position is a K-line, the return value of MONEY is the available funds of the previous K-line - margin for opening a position - handling fee.
b.When the closing signal is a K-line, the return value of MONEY is the available funds of the previous K-line + closing profit and loss + margin released by the position - handling fee.
3.The signal execution method is 'When the K-line is completed to confirm the signal to place an order', the closing profit and loss = (the closing price of the K-line of the closing signal - the opening price) * lot size * trading unit - handling fee.
4.When the signal execution method is 'the signal is placed immediately without review', the closing profit and loss = (the order price of the closing signal - the opening price) * lot size * trading unit - handling fee.
5.After the account is initialized, the return value of MONEY is the funds available in the initialization box.
Examples:
K:=MONEY*0.2/(C*MARGIN*UNIT+FEE); // The number of lots that can be opened with 20% of the account's available funds (this writing method is applicable to contracts that charge a fee based on a fixed number of lots), FEE custom, or calculated
Akun Ekuitas.
MONEYTOT account Equity.
Usage: MONEYTOT returns to the current account equity, and the model performs position control. It is used for fund management such as order lot size.
Calculation method: MONEYTOT=Account available funds + position margin.
Remarks:
1.The initial value of MONEYTOT in the account is the initial capital set in the margin parameters.
2.The initial value of MONEYTOT in the historical backtesting is the initial capital set in the backtesting parameters.
3.When the account is initialized:
a.The current signal is the opening signal, and the return value of MONEYTOT is the available funds of the account in the initialization box.
b.The current signal is the closing signal, then MONEYTOT returns to the available funds of the account + margin in the initialization box.
4.The signal to open a position is the K-line: MONEYTOT = available funds in the account + margin for holding positions.
5.After opening a position and before closing a position: MONEYTOT returns to the available funds in the current account + margin for holding positions.
6.The current k-line of the closing signal: when the position is 0, MONEYTOT = available funds; when the position is not 0, MONEYTOT = available funds + margin occupied by the position.
Remark:
The available funds in the position list are the available funds including floating profit and loss (= current equity - margin occupied by positions).
Examples:
K:=MONEYTOT*0.2/(C*MARGIN*UNIT+FEE); // The number of lots that can be opened with 20% of the account equity(this writing method is applicable to contracts that charge a fixed lot size), FEE customization, or calculation.
Pengembalian dana yang tersedia di rekening perdagangan, setara denganMONEY
.
Penggunaan:ACCOUNTMONEY
Kembali ke dana yang tersedia di akun trading.
Kembali ke ekuitas di rekening perdagangan, setara denganMONEYTOT
.
Penggunaan:ACCOUNTMONEYTOT
Kembali ke ekuitas di rekening perdagangan.
Jumlah koin yang tersedia di rekening spot mata uang digital.
1.It is used for digital currency spot to obtain the current number of available coins.
Leverage.
Spot mata uang digital
a := MARGIN; // Fixed as value 1
Berjangka mata uang digital
Futures mata uang digital menetapkan leverage.
a := MARGIN; // Declare the variable a and assign the current contract leverage to a
Dapatkan harga jual dariTICK
untuk satu.
Dapatkan harga jual dariTICK
untuk dua orang.
Dapatkan harga jual dariTICK
untuk tiga.
Dapatkan harga jual dariTICK
untuk empat.
Dapatkan harga jual dariTICK
untuk lima.
Dapatkan volume penjualanTICK
untuk satu.
Dapatkan volume penjualanTICK
untuk dua orang.
Dapatkan volume penjualanTICK
untuk tiga.
Dapatkan volume penjualanTICK
untuk empat.
Dapatkan volume penjualanTICK
untuk lima.
Dapatkan harga penawaran dariTICK
untuk satu.
Dapatkan harga penawaran dariTICK
untuk dua orang.
Dapatkan harga penawaran dariTICK
untuk tiga.
Dapatkan harga penawaran dariTICK
untuk empat.
Dapatkan harga penawaran dariTICK
untuk lima.
Dapatkan volume penawaran dariTICK
untuk satu.
Dapatkan volume penawaran dariTICK
untuk dua orang.
Dapatkan volume penawaran dariTICK
untuk tiga.
Dapatkan volume penawaran dariTICK
untuk empat.
Dapatkan volume penawaran dariTICK
untuk lima.
Dapatkan harga terbaru dariTICK
.
Sebuah teks kesalahan dilemparkan dan program keluar.
EXIT('msg'); // Parameters need to be passed in, string parameters need to be wrapped with '', an error is thrown, the error text is string msg
Log output
INFO(cond, param, ...);
1.cond is a condition variable, output log if true.
2.A condition variable can be followed by multiple variadic parameters.
Example:
INFO(1, C, '<-closing price');
Gunakan CONTRACT untuk mendapatkan kode kontrak pertukaran pemetaan kontrak yang saat ini ditetapkan.
INFO(1, CONTRACT);
Gunakan perintah DATA untuk memuat data.
(*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*)
A:DATA('https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json');
INFO(1, CONTRACT, A);
C>HV(H, 10),SPK;
C<LV(L, 15),BPK;
AUTOFILTER;
Penggunaan['attribute name']
untuk mengambil nilai dari atribut dalam data.https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json
adalah tautan data eksternal, itu bisa menjadi tautan ke data yang disediakan oleh program layanan lainnya, atau itu bisa menjadi data yang disediakan oleh pusat data dari platform perdagangan FMZ Quant, seperti bagian dari komentar dalam contoh(*Consumption Index: DATA('CPI')[ 'city'];*)
, gunakan kodeCPI
untuk mendapatkan data (data belum semua dibuka).
(*backtest
start: 2018-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*)
Consumption index: DATA('https://www.fmz.com/upload/asset/1ef31d778467ed9dd00.json')['city'];
(*Consumption index: DATA('CPI')['city'];*)
Consumption index > HV(Consumption index, 90),BPK;
Consumption index < LV(Consumption index, 90),SPK;
AUTOFILTER;
Poin harga minimum
Di bursa berjangka BITMEX, titik harga minimum adalah 0,5. Di bursa berjangka OKEX, titik harga minimum adalah 0,01.
Ketika harga beberapa kontrak relatif rendah, perlu untuk memperhatikan apakah pengaturan parameter, seperti presisi harga mata uang, presisi variasi perdagangan yang tepat.
Jumlah maksimum periode variabel
Hal ini mempengaruhi jumlah grafik K-line BARs dengan cara yang sama bahwa memanggilSetMaxBarLen
Fungsi dalamjavascript
Strategi yang penting.
Strategi MyLanguage, jumlah posisi yang ditampilkan pada tabel di kolom status.
Semua adalah jumlah posisi yang sebenarnya.
Penghakiman bersyarat (tidak disarankan untuk menulis dengan cara ini).
IF H > C THEN
BEGIN
X:=10;
END
Contoh:
Ketika model harga real-time digunakan, Bar K-line baru terdeteksi:
VARIABLE:N:0;
IF N <> BARPOS AND ISLASTBAR = 1 THEN
BEGIN
N:=BARPOS;
INFO(1, '123');
END