Per facilitarvi prendete il mio codice sorgente, ha una logica che funziona, tranne il problema che ho descritto, non lo capisco bene, la mia testa sta bollendo ma non sto andando da nessuna parte.
SGarnov: Ho la sensazione che il robot stia diventando più forte, ma non so cosa farci.
@MakarFX lo sta già facendo. Non mettiamoci in mezzo.
Quello che volevo dire...Scrivi tutto in modo che sia chiaro per te (personalmente/personalmente), non tirare il codice con il copia-incolla.
e uno scheletro di robot molto semplificato assomiglia a questo:
int ticket=-1; // тикет открытого ордераbool inited=false; // признак завершения инициализацииintOnInit()
{
ticket=-1;
inited=false;
// ещё надо проверить параметры, но пока чёрт с ними// пробуем загрузить прежнее состояниеif (LoadState()) {
// из файла, базы или глоб.переменных загрузилисьif (!CheckState()) {
// проверили, плохо всё..
ClearState(); // удалить и поругатьсяAlert("Усё пропало, шеф !");
returnINIT_FAILED();
}
}
return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
if (inited) {
// инициализация была проведена, стейт мог уже менятся во время работы
SaveState(); // сохраняем куда-то там
}
}
voidOnTick()
{
//// ЧТОБЫ БЫ БЫЛО ХОРОШО, //// НЕ БОЛЕЕ 1-го ПРИКАЗА Open/Close/Modify на тик//// И ЗАВЕРШИТЬ ВСЁ ПО БЫСТРОМУif (!inited) {
// связь есть, тики идут// довести инициализацию до нужной кондицииif (!DoInit()) {
// не довеласьAlert("вот же блин...");
ExpertRemove();
} else {
// в DoInit проставлен корректный ticket
inited=true;
}
return;
}
// всё проиничено, ticket или -1 если нет нифига или реально тикет//// РАЗБОРЫ С ТИКЕТАМИif (ticket<0) {
// нет открытых ордеров// может открыть/переоткрыть ?
} else {
if (!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) {
// что-то не так с синхронизацией, просто пропустим тикreturn;
}
if (OrderCloseTime()!=0) {
// ордер закрылся ручками или по стопам/тейкам (или стопаут, приплыли)
OnCloseOrder(); // обработать, разобраться
ticket=-1; // нет у нас больше тикета..// в этот тик больше не успетьreturn;
} else {
if ((OrderStopLoss()==0 && SL!=0) || (OrderTakeProfit()==0 && TP!=0)) {
// свежачок - надо ему выстаить Тейк и/или стоп
} else {
// для реала - проверять сработку Sl/Tp на ГЕПАХ, ЭТО ВАЖНО
}
}
}
//// РАЗБОРЫ с БАРАМИ
CheckForOnBar();
/// и так далее...
}
voidOnTimer()
{
// тики завершаем быстро-быстро, поэтому открытия баров дополнительно проверяем по таймеру
CheckForOnBar();
}
la birra fa miracoli e rende le persone più gentili :-)
Per facilitarvi prendete il mio codice sorgente, ha una logica che funziona, tranne il problema che ho descritto, non lo capisco bene, la mia testa sta bollendo ma non sto andando da nessuna parte.
Ho la sensazione che il robot stia diventando più forte, ma non so cosa farci.
@MakarFX lo sta già facendo. Non mettiamoci in mezzo.
Quello che volevo dire...Scrivi tutto in modo che sia chiaro per te (personalmente/personalmente), non tirare il codice con il copia-incolla.
e uno scheletro di robot molto semplificato assomiglia a questo:
la birra fa miracoli e rende le persone più gentili :-)
Piazzate un ordine in sospeso o due in direzioni diverse?
Ho sempre messo fuori un singolo in sospeso.
Provalo, chiedilo
Provalo, chiedilo
Vi farò sapere cosa succede. grazie per l'aiuto.
Qualcuno può spiegare la ragione di questo comportamento?
Apro un ordine
allora l'Expert Advisor lo modifica
e poi succede questa merda
2021.07.29 18:53:58.313 '60744458': order #1639674290 sell 0.01 USDJPY closing at 0.000 failed [Off quotes] 2021.07.29 18:53:57.647 '60744458': close order #1639674290 sell 0.01 USDJPY at 109.519 sl: 0.000 tp: 0.000 at price 0.000La cosa interessante è che accade su USDJPY e solo vendere su altre coppie
Qualcuno può spiegare la ragione di questo comportamento?
Apro un ordine
allora l'Expert Advisor lo modifica
e poi succede questa merda
La cosa interessante è che succede solo su USDJPY e tutto va bene sugli altri
Se vuoi capire qualcosa, devi imparare come ottenere il massimo di informazioni utili in cicli minimi...
Per capire qualcosa, impara a tirare fuori le informazioni più utili nel minor numero di cicli...
È bene parlare quando si sa cosa fare...
aiuto con consigli su come "ottenere il massimo dalle informazioni utili"
Qualcuno può spiegare la ragione di questo comportamento?
Apro un ordine
allora l'Expert Advisor lo modifica
e poi succede questa merda
La cosa interessante è che accade su USDJPY e solo vendere su altre coppie
È così che funziona l'EA di cui hai scritto il codice?