Sierra
Sierra
h"
SCDLLName("Requete5");
SCDateTime lasttime;
SCDateTime opentime;
return dateAndTimeOpeningFormatted;
}
if (sc.SetDefaults)
{
opentime=sc.CurrentSystemDateTime;
// Paramètres par défaut lors de la configuration de l'étude
sc.GraphName = "Send Order Type to API";
sc.StudyDescription = "Exemple d'envoi de type d'ordre à une API
distante";
sc.AutoLoop = 0; // Désactiver la boucle automatique car nous ne
traiterons les données qu'en cas d'événements spécifiques
sc.Input[0].Name = "Custom Name";
sc.Input[0].SetString("Your Name"); // Default value
sc.Input[1].Name = "password";
sc.Input[1].SetString("your password") ;
return;
}
s_ACSTrade TradeEntry;
int Size = sc.GetTradeListSize();
if(sc.GetTradeListEntry(Size-1, TradeEntry))
{
TradesList.push_back(TradeEntry);
}
SCDateTime tradetime =TradesList[0].OpenDateTime>TradesList[0].CloseDateTime
? TradesList[0].OpenDateTime: TradesList[0].CloseDateTime;
if (true)
{
// Envoi du type d'ordre Buy à l'API distante
sc.AddMessageToLog("orderType: Buy", 0);
SCString MessageOut;
const char* customName = sc.Input[0].GetString();
const char* customPqssword = sc.Input[1].GetString();
sc.AddMessageToLog(MessageOut, 0);
int ticketNumber = 225973981;
int identifier = 155411;
SCString orderType = "SELL";
SCString closurePosition = "Open";
int volume = TradesList[0].TradeQuantity;
SCString typeOfTransaction = "Buy";
int volume_remain =15845;
int balance = 0;
int point = 1;
int tick = 2;
int tradecount = 1;
// Créer une structure JSON
SCString postData;
postData.Format("{\"username\":\"%s\",\"password\":\"%s\",\"ticketNumber\":
%d,\"identifier\":%ld,\"orderType\":\"%s\",\"closurePosition\":\"%s\",\"volume\":
%ld,\"typeOfTransaction\":\"%s\",\"volume_remain\":
%ld,\"dateAndTimeOpening\":\"%s\",\"dateAndTimeClosure\":\"%s\",\"priceOpening\":
%ld,\"takeProfit\":%ld,\"stopLoss\":%ld,\"balance\":%ld, \"tick\":%ld, \"point\":
%ld, \"SLOpen\":%ld,\"tradecount\":%ld, \"TPOpen\":%ld}",
customName, customPqssword, ticketNumber, identifier,
orderType.GetChars(), closurePosition.GetChars(), volume,
typeOfTransaction.GetChars(), volume_remain,
dateAndTimeOpeningFormatted.GetChars(), dateAndTimeClosure.GetChars(),
priceOpening, takeProfit, stopLoss, balance, tick, point, SLOpen, TPOpen,
tradecount);
sc.AddMessageToLog(postData, 0);
n_ACSIL::s_HTTPHeader httpHeader;
httpHeader.Name = "Content-Type";
httpHeader.Value = "application/json";
}
else if (true)
{
// Envoi du type d'ordre Sell à l'API distantesi
sc.AddMessageToLog("Order Type: Sell", 0);
float balance = 0;
int point = 1;
int tick = 2;
int tradecount = 1;
postData.Format("{\"username\":\"%s\",\"password\":\"%s\",\"ticketNumber\":
%d,\"identifier\":%ld,\"orderType\":\"%s\",\"closurePosition\":\"%s\",\"volume\":
%ld,\"typeOfTransaction\":\"%s\",\"volume_remain\":
%ld,\"dateAndTimeOpening\":\"%s\",\"dateAndTimeClosure\":\"%s\",\"priceOpening\":
%ld,\"takeProfit\":%ld,\"stopLoss\":%ld,\"balance\":%ld, \"tick\":%ld, \"point\":
%ld, \"SLOpen\":%ld,\"tradecount\":%ld, \"TPOpen\":%ld}",
customName, customPqssword, ticketNumber, identifier,
orderType.GetChars(), closurePosition.GetChars(), volume,
typeOfTransaction.GetChars(), volume_remain,
dateAndTimeOpeningFormatted.GetChars(), dateAndTimeClosure.GetChars(),
priceOpening, takeProfit, stopLoss, balance, tick, point, SLOpen, TPOpen,
tradecount);
sc.AddMessageToLog(postData, 0);
n_ACSIL::s_HTTPHeader httpHeader;
httpHeader.Name = "Content-Type";
httpHeader.Value = "application/json";
}
// Vérifiez si la requête est terminée et si la réponse est disponible
if (requestState == HTTP_REQUEST_MADE && sc.HTTPRequestID != 0)
{
requestState = HTTP_REQUEST_RECEIVED;
sc.AddMessageToLog(sc.HTTPResponse, 1);
}