L’idée principale de la stratégie de fixation des ordres est d’effectuer des opérations d’achat et de vente à des moments personnalisés par l’utilisateur. Cette stratégie permet à l’utilisateur de définir un moment précis auquel il vendra sa position actuelle, puis achètera à un prix limité de 1% par rapport au prix actuel. Cela permet de réinitialiser régulièrement la position à des heures spécifiques chaque jour.
La stratégie commence par obtenir les heures et les minutes personnalisées par l’utilisateur via une fonction d’entrée, puis génère un temps d’exécution de l’ordre à l’aide d’une fonction de timestamp. Si l’heure actuelle est après le point d’heure spécifié, elle déclenche une opération de vente et d’achat.
En particulier, la stratégie commence par déterminer si le moment présent se situe dans la fourchette des dates de début et de fin indiquées par l’utilisateur. Si elle est satisfaisante, elle vend la position actuelle à la date d’exécution de l’ordre spécifiée au prix du marché, puis achète à un prix de limite de 99% du prix actuel. Cela permet de réajuster la position à un prix inférieur de 1% au prix actuel à un moment donné.
Le plus grand avantage de cette stratégie réside dans le fait que les positions peuvent être réajustées périodiquement à un moment donné, sans intervention manuelle, ce qui réduit les coûts humains. En outre, chaque réajustement est effectué à un prix légèrement inférieur au prix actuel.
Les avantages spécifiques sont les suivants:
Les opérations sont entièrement automatisées, ce qui réduit les coûts de main-d’œuvre.
Les positions peuvent être réajustées périodiquement à un moment donné.
Chaque remise en position permet d’obtenir une opportunité d’achat ultra-basse d’un peu moins de 1% du prix actuel.
Les points de dépôt peuvent être personnalisés et adaptés de manière flexible.
Les dates de début et de fin des cycles de dépôt peuvent être personnalisées pour faciliter le suivi et l’optimisation.
Cette stratégie comporte également des risques à prendre en compte:
Si vous ne choisissez pas correctement le moment de la transaction, vous risquez de manquer un bon moment pour acheter ou de vendre au mauvais moment.
Le prix d’achat est inférieur de 1% seulement au prix de vente, et il est possible que l’on ne puisse pas obtenir suffisamment d’écart de prix d’achat très bas à chaque cycle de remise.
Les prix de vente et d’achat sont des prix du marché et peuvent être influencés par des points de glissement.
Si une stratégie ne fonctionne qu’à un moment donné, elle ne peut pas gérer le marché entre ces points.
Les échanges fréquents entraînent des frais de transaction.
La réponse:
Choisir le moment de la mise à disposition approprié, en combinant avec d’autres indicateurs techniques.
Le paramètre de différence de prix d’achat peut être augmenté si nécessaire.
Choisissez une variété de transactions avec une profondeur et une volatilité optimales.
La gestion des risques peut être combinée avec d’autres stratégies pendant la période de non-démarrage.
Contrôle adéquat de la fréquence de négociation, équilibre des avantages de négociation et des frais de transaction.
Cette stratégie peut être optimisée dans les directions suivantes:
Optimiser la sélection des points de négociation, en combinant les caractéristiques du cycle de la variété de négociation avec les points de négociation optimaux.
Ajoutez d’autres indicateurs techniques pour éviter de changer de position à des moments défavorables. Par exemple, les indicateurs de jugement de tendance tels que les moyennes mobiles.
Optimiser les paramètres d’achat ultra-bas, équilibrer l’avantage et le coût de la transaction.
Le blocage des pertes de suivi est utilisé pour gérer les positions pendant l’intervalle de dépôt.
L’entraînement des données historiques en combinaison avec des algorithmes d’apprentissage automatique permet d’optimiser automatiquement les points de dépôt.
Ajout d’une fonction de récupération de droits, pour suivre les fractions d’actions, les dividendes, etc.
Dans l’ensemble, la stratégie d’ordre à temps permet d’automatiser le processus de négociation et de réduire les coûts de manipulation manuelle en ajustant régulièrement les positions. La stratégie offre une plus grande marge d’optimisation. Elle peut être améliorée par la sélection du moment de la mise en position, la définition des paramètres d’achat, le stop loss et l’optimisation de l’algorithme.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ytrevor
//@version=4
strategy("Order At Specified Time", overlay=true)
// -- These inputs are for customizing the times of your desired orders -- //
customHour = input(title="Hour for Order Execution", type=input.integer, defval=01, minval=00, maxval=24) //
customMinute = input(title="Minute for Order Execution", type=input.integer, defval=00, minval=00, maxval=59)
targetTime = timestamp("UTC", year, month, dayofmonth, customHour, customMinute, 00) //Order executes at this time
inDateRange = (time >= targetTime) and (time <= targetTime) //Orders are placed everyday at 01:00 UTC, or any other time specified via input
// -- These inputs are for back testing. Feel free to change the start and end dates via input -- //
startDay = input(title="Start Day", type=input.integer, defval=10, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=2, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2021)
endDay = input(title="End Day", type=input.integer, defval=22, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer, defval=3, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer, defval=2021)
betweenDates = true
// -- Order execution -- //
if betweenDates
buyPrice = close*0.99 //Buy at 1% lower than selling price
strategy.entry("Sell", strategy.short, when=inDateRange) //Sell at 01:00 UTC, or at any other time specified via input
strategy.entry("Buy", strategy.long, limit=buyPrice, when=inDateRange) //Buy limit order placed at the same time, 1% lower than selling price