Версия 2.43
2021.12.03
fixed "order.closeall();"...
Версия 2.42
2021.12.02
added commands "fuzzy.limit([float]);" and "fuzzy.stop([float]);" so that positions can be liquidated using fuzzy logic based on the user's account value. Fuzzy limit closes profitable trades and fuzzy stop closes losing trades.
Версия 2.40
2021.08.16
Now supports looped triggers, where one trigger activates another trigger and then that other trigger activates the original trigger. Trigger commands cannot trigger themselves. "debug.sleep(N);" can be used to throttle the speed of execution. Object-command loop accepts script removal interrupts.
Версия 2.37
2021.08.16
Groan. Another bug fix. "order.close" and "order.closeall" weren't working, because the OrderClose call wasn't set properly.
Версия 2.36
2021.08.15
Bug fix. No new functionality.
Версия 2.35
2021.08.15
This version represents a deep reorganization of the capabilities of the previous versions. It runs more efficiently as a result. While there may be more work to do with regard to the way various indicators are handled by the ordering layer itself, significant progress has been made to create a functional set of commands that can be processed by the "micro" interpreter.
The first major change is the way the equity monitor is handled. Rather than using the fixed percents set as "user inputs" when the program was started, those capabilities have been coded into fixed equity levels set with "account.limit([equity]);" and "account.stop([equity]);" command labels.
The next change was the addition of the "debug" commands. Chief among them, the "debug.trigger" command, which accepts as parameters a list of velvet object IDs which have valid commands "commented out" in their description, such that they are inactive in the main object loop, but activated when its ID is found as a parameter in a trigger command. "debug.print" has been implemented as well to display status changes in batch ordering. Cancelling objects is possible by using either a constant "cancel=N;" attached to any valid command, but also possible by using the "debug.cancel" command with the velvet object ID that should be canceled.
Finally, "order" commands "buy" and "sell" are unaltered. "closeall" has been included. To use "closeall" to close all positions in a given symbol, use "symbol=[symbol];" (Like say USDCHF... "order.closeall(); symbol=USDCHF;" ) "order.close" can be used to "close" an open ticket specified either by the ticket number or the object number. "order.close" can also be used to cancel an object that contains a pending order.
Commands nested in trendlines are not displayed on the chart, but found in the description of the object when the object editor is open. These commands require that the first parameter be either "above" or "below". Velvet does not use quotation marks as part of its syntax, so that if we used the command "order.buy(above, 0.01);" this would be valid syntax, but "order.buy("above", 0.01);" is not, because the syntax checker does not accept quotation marks.
Future releases will be accompanied by better documentation.
Версия 2.1
2021.08.09
Prompts for rates controlling equity monitor.
Версия 2.0
2021.08.09
Restructured ordering syntax to match indicator detection string format.
So orders are now placed via commands placed in the description of trendlines and text labels.
Trendlines can be used to place orders in the main price chart of any symbol.
commands "order.buy([volume],[region]);", "order.sell([volume],[region]);", and "order.close([region]); {object=N}|{ticket=N};" will be detected as orders. "order.close" commands must specify either an open order ticket from the trade table or a valid velvet object ID. "cancel=N;" can be placed after the function call of any velvet order to cancel the action of the velvet object with the corresponding name "velvet.object=N" when the order is triggered. [region] indicates the region either "above" the line or "below" the line.
Don't forget semi-colons. "order.buy(0.01, above); cancel=1234" is not valid, but "order.buy(0.01, above); cancel=1234;" is
valid. Similarity with C/C++ is intentional. C3PO supports one object function call with arbitrary parameters separated by commas (strings composed of numbers, letters, space and underscore, or a number that can be detected as either an integer or floating point type) and a list of constants with an arbitrary number of key value pairs (a valid identifier and either another valid identifier or a number separated by an equal sign "=", with pairs separated by a semi-colon and a semi-colon at the end of the list of constants). Comments are optional, but can be used sometimes by the program to indicate a change of status.
"order.signal([volume]);" will open a position in the symbol for the given time frame in which it was placed when the red signal line crosses either "above" or "below" the main line. Do not alter the variables appended to the entered command.
If velvet is disabled for the chart sub window the object will not be detected. Velvet indicators are required for orders to be executed. Trendline orders currently only work with indicators that have one output line. (RSI) Signal orders placed as labels are only supported by indicators with two output lines.(MACD, RVI)