С меня сняли деньги, где узнать за что? - страница 9

 
kylinar2012:
Я как участник этого действа согласен чтоб сделать случай публичным, мне скрывать не чего.
      так выкладывйте
 
Armen:
      так выкладывйте
Что выложить? Код советника для МТ4? Вот текст объявления:

Здравствуйте, хотелось бы советник или индикатор и скрипт для создания Ренко - чарта в МТ5.

Т.е. чтоб на чарте можно было повесить индикаторы, скрипты.

В МТ4 это реализовано несколькими советниками, лично я пользуюсь RenkoLiveChart_v3.2, хотелось бы аналогичное что - то для МТ5.

Ну и приложен код советника RenkoLiveChart_v3.2,

Вот ответ исполнителя:

"Могу начать.

Но сделаю в течении этой недели."



Вот и все, дальше отказ и штраф.

 
Armen:
      так выкладывйте

Вот что написал исполнитель насчет ТЗ (скопировано дословно):


"В качестве ТЗ приложите исходник эксперта. (имелся ввиду RenkoLiveChart_v3.2)

сумма 100 время 5."


Вся переписка с исполнителем велась только в сервисе, так что модераторы это видели вынося решение о штрафе.

 
kylinar2012:
Что выложить? Код советника для МТ4? Вот текст объявления:

Здравствуйте, хотелось бы советник или индикатор и скрипт для создания Ренко - чарта в МТ5.

Т.е. чтоб на чарте можно было повесить индикаторы, скрипты.

В МТ4 это реализовано несколькими советниками, лично я пользуюсь RenkoLiveChart_v3.2, хотелось бы аналогичное что - то для МТ5.

Ну и приложен код советника RenkoLiveChart_v3.2,

Вот ответ исполнителя:

"Могу начать.

Но сделаю в течении этой недели."



Вот и все, дальше отказ и штраф.

а где же фразы: "оказывается нереально будет сделать в силу архитектуры МТ5"

А вот следующей фразе написано, что вообще - то реально сделать работу, но по цене в 4 раза большей.

 
kylinar2012:

Конечно в обсуждениях выше приводятся фразы что возможно ТЗ изменилось или еще какие форс - мажоры.

Вот дословная фраза исполнителя (скопированная) почему работа не была сделана: "оказывается нереально будет сделать в силу архитектуры МТ5"

А вот следующей фразе написано, что вообще - то реально сделать работу, но по цене в 4 раза большей.

И при чем здесь я, как заказчик? Арбитражер Rosh мне так и не пояснил.



где в переписке это? см выше
 

Ну, и для полноты картины пригласите сюда исполнителя.

Я, если честно, на его месте давно пришел бы сам, дал вам $5, и спал спокойно.

Но раз начали, давайте закончим. Опубликуйте полный текст переписки (включая ваше задание и его письмо) с хронологией, и попросим комментариев Рашида или Рената.

 

komposter:

Ну, и для полноты картины пригласите сюда исполнителя.

Я, если честно, на его месте давно пришел бы сам, дал вам $5, и спал спокойно.

Но раз начали, давайте закончим. Опубликуйте полный текст переписки (включая ваше задание и его письмо) с хронологией, и попросим комментариев Рашида или Рената.

Как я писал ранее, дело не в сумме (5ед.) и даже не в исполнителе (ну не рассчитал человек свои силы, бывает), а в принципе взыскания штрафов модераторами ресурса. Штраф берется не с виновного, а с кого удобнее.

Я не могу пригласить исполнителя, раз он не приходит, значит так считает лучше, это его право.

Вот текст ТЗ:

  ТЕХНИЧЕСКОЕ       ЗАДАНИЕ

Заданием является изготовление советника, создающего Ренко – чарт в торговом терминале Метатрейдер 5, аналогичный, по функциональным возможностям, советнику RenkoLiveChart_v3.2.mq4, используемому в торговом терминале Метатрейдер 4.

Исходный код RenkoLiveChart_v3.2.mq4:

//+---------------------------------------------------------------------------+
//|   EA VERSION
//|   RenkoLiveChart_v3.2.mq4
//|   Inspired from Renko script by "e4" (renko_live_scr.mq4)
//|   Copyleft 2009 LastViking
//|   
//|   Aug 12 2009 (LV):
//|            - Wanted volume in my Renko chart so I wrote my own script
//|     
//|   Aug 20-21 2009 (LV) (v1.1 - v1.3):
//|            - First attempt at live Renko brick formation (bugs O bugs...)
//|            - Fixed problem with strange symbol names at some 5 digit
//|               brokers (credit to Tigertron)
//|     
//|   Aug 24 2009 (LV) (v1.4):
//|            - Handle High / Low in history in a reasonable way (prev.
//|               used Close)
//|   
//|   Aug 26 2009 (Lou G) (v1.5/v1.6):
//|            - Finaly fixing the "late appearance" (live Renko brick
//|               formation) bug
//|
//|   Aug 31 2009 (LV) (v2.0):
//|            - Not a script anylonger, but run as indicator
//|            - Naroved down the MT4 bug that used to cause the "late appearance bug"
//|               a little closer (has to do with High / Low gaps)
//|            - Removed the while ... sleep() loop. Renko chart is now tick
//|               driven: -MUSH nicer to system resources this way
//|
//|   Sep 03 2009 (LV) (v2.1):
//|            - Fixed so that Time[] holds the open time of the renko
//|               bricks (prev. used time of close)
//|     
//|   Sep 16 2009 (Lou G) (v3.0):
//|            - Optional wicks added
//|            - Conversion back to EA
//|            - Auto adjust for 5 and 6 dec brokers added
//|               enter RenkoBoxSize as "actual" size e.g. "10" for 10 pips
//|            - Compensation for "zero compare" problem added
//|
//|   Okt 05 2009 (LV) (v3.1):
//|            - Fixed a bug related to BoxOffset
//|            - Auto adjust for 3 and 4 dec JPY pairs
//|            - Removed init() function
//|            - Changed back to old style Renko brick formation
//|
//|   Okt 13 2009 (LV) (v3.2):
//|            - Added "EmulateOnLineChart" option (credit to Skipperxit/Mimmo)
//|
//+---------------------------------------------------------------------------+
#property copyright ""
//+------------------------------------------------------------------+
#include <WinUser32.mqh>
#include <stdlib.mqh>
//+------------------------------------------------------------------+
#import "user32.dll"
    int RegisterWindowMessageA(string lpString);
#import
//+------------------------------------------------------------------+
extern int RenkoBoxSize = 10;
extern int RenkoBoxOffset = 0;
extern int RenkoTimeFrame = 2;      // What time frame to use for the offline renko chart
extern bool ShowWicks = true;
extern bool EmulateOnLineChart = true;
extern bool StrangeSymbolName = false;
//+------------------------------------------------------------------+
int HstHandle = -1, LastFPos = 0, MT4InternalMsg = 0;
string SymbolName;
//+------------------------------------------------------------------+
void UpdateChartWindow() {
    static int hwnd = 0;
 
    if(hwnd == 0) {
        hwnd = WindowHandle(SymbolName, RenkoTimeFrame);
        if(hwnd != 0) Print("Chart window detected");
    }

    if(EmulateOnLineChart && MT4InternalMsg == 0)
        MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message");

    if(hwnd != 0) if(PostMessageA(hwnd, WM_COMMAND, 0x822c, 0) == 0) hwnd = 0;
    if(hwnd != 0 && MT4InternalMsg != 0) PostMessageA(hwnd, MT4InternalMsg, 2, 1);

    return;
}
//+------------------------------------------------------------------+
int start() {

    static double BoxPoints, UpWick, DnWick;
    static double PrevLow, PrevHigh, PrevOpen, PrevClose, CurVolume, CurLow, CurHigh, CurOpen, CurClose;
    static datetime PrevTime;
       
    //+------------------------------------------------------------------+
    // This is only executed ones, then the first tick arives.
    if(HstHandle < 0) {
        // Init

        // Error checking    
        if(!IsConnected()) {
            Print("Waiting for connection...");
            return(0);
        }                            
        if(!IsDllsAllowed()) {
            Print("Error: Dll calls must be allowed!");
            return(-1);
        }        
        if(MathAbs(RenkoBoxOffset) >= RenkoBoxSize) {
            Print("Error: |RenkoBoxOffset| should be less then RenkoBoxSize!");
            return(-1);
        }
        switch(RenkoTimeFrame) {
        case 1: case 5: case 15: case 30: case 60: case 240:
        case 1440: case 10080: case 43200: case 0:
            Print("Error: Invald time frame used for offline renko chart (RenkoTimeFrame)!");
            return(-1);
        }
        //
        
        int BoxSize = RenkoBoxSize;
        int BoxOffset = RenkoBoxOffset;
        if(Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY") != -1)) {
            BoxSize = BoxSize*10;
            BoxOffset = BoxOffset*10;
        }
        if(Digits == 6 || (Digits == 4 && StringFind(Symbol(), "JPY") != -1)) {
            BoxSize = BoxSize*100;        
            BoxOffset = BoxOffset*100;
        }
        
        if(StrangeSymbolName) SymbolName = StringSubstr(Symbol(), 0, 6);
        else SymbolName = Symbol();
        BoxPoints = NormalizeDouble(BoxSize*Point, Digits);
        PrevLow = NormalizeDouble(BoxOffset*Point + MathFloor(Close[Bars-1]/BoxPoints)*BoxPoints, Digits);
        DnWick = PrevLow;
        PrevHigh = PrevLow + BoxPoints;
        UpWick = PrevHigh;
        PrevOpen = PrevLow;
        PrevClose = PrevHigh;
        CurVolume = 1;
        PrevTime = Time[Bars-1];
    
        // create / open hst file        
        HstHandle = FileOpenHistory(SymbolName + RenkoTimeFrame + ".hst", FILE_BIN|FILE_WRITE);
        if(HstHandle < 0) {
            Print("Error: can\'t create / open history file: " + ErrorDescription(GetLastError()) + ": " + SymbolName + RenkoTimeFrame + ".hst");
            return(-1);
        }
        //
       
        // write hst file header
        int HstUnused[13];
        FileWriteInteger(HstHandle, 400, LONG_VALUE);             // Version
        FileWriteString(HstHandle, "", 64);                    // Copyright
        FileWriteString(HstHandle, SymbolName, 12);            // Symbol
        FileWriteInteger(HstHandle, RenkoTimeFrame, LONG_VALUE);    // Period
        FileWriteInteger(HstHandle, Digits, LONG_VALUE);        // Digits
        FileWriteInteger(HstHandle, 0, LONG_VALUE);            // Time Sign
        FileWriteInteger(HstHandle, 0, LONG_VALUE);            // Last Sync
        FileWriteArray(HstHandle, HstUnused, 0, 13);            // Unused
        //
       
         // process historical data
          int i = Bars-2;
        //Print(Symbol() + " " + High[i] + " " + Low[i] + " " + Open[i] + " " + Close[i]);
        //---------------------------------------------------------------------------
          while(i >= 0) {
          
            CurVolume = CurVolume + Volume[i];
        
            UpWick = MathMax(UpWick, High[i]);
            DnWick = MathMin(DnWick, Low[i]);

            // update low before high or the revers depending on is closest to prev. bar
            bool UpTrend = High[i]+Low[i] > High[i+1]+Low[i+1];
        
            while(UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints))) {
                  PrevHigh = PrevHigh - BoxPoints;
                  PrevLow = PrevLow - BoxPoints;
                  PrevOpen = PrevHigh;
                  PrevClose = PrevLow;

                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);

                if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                                                
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
                
                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevLow;
                CurLow = PrevLow;  
                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }
        
            while(High[i] > PrevHigh+BoxPoints || CompareDoubles(High[i], PrevHigh+BoxPoints)) {
                  PrevHigh = PrevHigh + BoxPoints;
                  PrevLow = PrevLow + BoxPoints;
                  PrevOpen = PrevLow;
                  PrevClose = PrevHigh;
              
                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);

                    if(ShowWicks && DnWick < PrevLow) FileWriteDouble(HstHandle, DnWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
                                
                FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
                
                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevHigh;
                CurLow = PrevHigh;  
                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }
        
            while(!UpTrend && (Low[i] < PrevLow-BoxPoints || CompareDoubles(Low[i], PrevLow-BoxPoints))) {
                  PrevHigh = PrevHigh - BoxPoints;
                  PrevLow = PrevLow - BoxPoints;
                  PrevOpen = PrevHigh;
                  PrevClose = PrevLow;
              
                FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
                FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
                
                if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE);
                else FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                
                FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
                FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);

                UpWick = 0;
                DnWick = EMPTY_VALUE;
                CurVolume = 0;
                CurHigh = PrevLow;
                CurLow = PrevLow;  
                                
                if(PrevTime < Time[i]) PrevTime = Time[i];
                else PrevTime++;
            }        
            i--;
        }
        LastFPos = FileTell(HstHandle);   // Remember Last pos in file
        //
            
        Comment("RenkoLiveChart(" + RenkoBoxSize + "): Open Offline ", SymbolName, ",M", RenkoTimeFrame, " to view chart");
        
        if(Close[0] > MathMax(PrevClose, PrevOpen)) CurOpen = MathMax(PrevClose, PrevOpen);
        else if (Close[0] < MathMin(PrevClose, PrevOpen)) CurOpen = MathMin(PrevClose, PrevOpen);
        else CurOpen = Close[0];
        
        CurClose = Close[0];
                
        if(UpWick > PrevHigh) CurHigh = UpWick;
        if(DnWick < PrevLow) CurLow = DnWick;
      
        FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);        // Time
        FileWriteDouble(HstHandle, CurOpen, DOUBLE_VALUE);             // Open
        FileWriteDouble(HstHandle, CurLow, DOUBLE_VALUE);        // Low
        FileWriteDouble(HstHandle, CurHigh, DOUBLE_VALUE);        // High
        FileWriteDouble(HstHandle, CurClose, DOUBLE_VALUE);        // Close
        FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);        // Volume                
        FileFlush(HstHandle);
            
        UpdateChartWindow();
        
        return(0);
         // End historical data / Init        
    }         
    //----------------------------------------------------------------------------
     // HstHandle not < 0 so we always enter here after history done
    // Begin live data feed
               
    UpWick = MathMax(UpWick, Bid);
    DnWick = MathMin(DnWick, Bid);

    CurVolume++;               
    FileSeek(HstHandle, LastFPos, SEEK_SET);

     //-------------------------------------------------------------------------                       
     // up box                       
       if(Bid > PrevHigh+BoxPoints || CompareDoubles(Bid, PrevHigh+BoxPoints)) {
        PrevHigh = PrevHigh + BoxPoints;
        PrevLow = PrevLow + BoxPoints;
          PrevOpen = PrevLow;
          PrevClose = PrevHigh;
                                
        FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
        FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);

        if (ShowWicks && DnWick < PrevLow) FileWriteDouble(HstHandle, DnWick, DOUBLE_VALUE);
        else FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);
                      
        FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
        FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
        FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
          FileFlush(HstHandle);
            LastFPos = FileTell(HstHandle);   // Remeber Last pos in file                                              
          
        if(PrevTime < TimeCurrent()) PrevTime = TimeCurrent();
        else PrevTime++;
                    
          CurVolume = 0;
        CurHigh = PrevHigh;
        CurLow = PrevHigh;  
        
        UpWick = 0;
        DnWick = EMPTY_VALUE;        
        
        UpdateChartWindow();                                    
      }
     //-------------------------------------------------------------------------                       
     // down box
    else if(Bid < PrevLow-BoxPoints || CompareDoubles(Bid,PrevLow-BoxPoints)) {
          PrevHigh = PrevHigh - BoxPoints;
          PrevLow = PrevLow - BoxPoints;
          PrevOpen = PrevHigh;
          PrevClose = PrevLow;
                                
        FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);
        FileWriteDouble(HstHandle, PrevOpen, DOUBLE_VALUE);
        FileWriteDouble(HstHandle, PrevLow, DOUBLE_VALUE);

        if(ShowWicks && UpWick > PrevHigh) FileWriteDouble(HstHandle, UpWick, DOUBLE_VALUE);
        else FileWriteDouble(HstHandle, PrevHigh, DOUBLE_VALUE);
                              
        FileWriteDouble(HstHandle, PrevClose, DOUBLE_VALUE);
        FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);
          FileFlush(HstHandle);
            LastFPos = FileTell(HstHandle);   // Remeber Last pos in file                                              
          
        if(PrevTime < TimeCurrent()) PrevTime = TimeCurrent();
        else PrevTime++;          
                    
          CurVolume = 0;
        CurHigh = PrevLow;
        CurLow = PrevLow;  
        
        UpWick = 0;
        DnWick = EMPTY_VALUE;        
        
        UpdateChartWindow();                        
         }
     //-------------------------------------------------------------------------                       
       // no box - high/low not hit                
    else {
        if(Bid > CurHigh) CurHigh = Bid;
        if(Bid < CurLow) CurLow = Bid;
        
        if(PrevHigh <= Bid) CurOpen = PrevHigh;
        else if(PrevLow >= Bid) CurOpen = PrevLow;
        else CurOpen = Bid;
        
        CurClose = Bid;
        
        FileWriteInteger(HstHandle, PrevTime, LONG_VALUE);        // Time
        FileWriteDouble(HstHandle, CurOpen, DOUBLE_VALUE);             // Open
        FileWriteDouble(HstHandle, CurLow, DOUBLE_VALUE);        // Low
        FileWriteDouble(HstHandle, CurHigh, DOUBLE_VALUE);        // High
        FileWriteDouble(HstHandle, CurClose, DOUBLE_VALUE);        // Close
        FileWriteDouble(HstHandle, CurVolume, DOUBLE_VALUE);        // Volume                
            FileFlush(HstHandle);
            
        UpdateChartWindow();            
         }
         return(0);
}
//+------------------------------------------------------------------+
int deinit() {
    if(HstHandle >= 0) {
        FileClose(HstHandle);
        HstHandle = -1;
    }
       Comment("");
    return(0);
}
//+------------------------------------------------------------------+
   

Вот ОТВЕТ ИСПОЛНИТЕЛЯ:


15794

Im_hungry 2013.11.25 17:25

Могу начать.

Но сделаю в течении этой недели.


Следующее

Im_hungry 2013.11.26 07:59

я только перепешу. исходник и прочее вышлю вам.

А насчет прав это уже к автору кода на МТ4.


Следующее:

Im_hungry 2013.11.26 08:33

тогда переводите меня в выбранные и начнем оформление.

Приступить смогу только завтра. Сделаю к концу недели


2013.11.26 10:25

Разработчик Im_hungry подтвердил шаг "Соглашение о работе"




 
komposter:

Ну, и для полноты картины пригласите сюда исполнителя.

Я, если честно, на его месте давно пришел бы сам, дал вам $5, и спал спокойно.

Но раз начали, давайте закончим. Опубликуйте полный текст переписки (включая ваше задание и его письмо) с хронологией, и попросим комментариев Рашида или Рената.

Вот вроде ответил, появились линии, убрать не могу, пишу далее следующий пост.

Дальше

Im_hungry 2013.11.26 10:27

Дальше ваша очередь.

В качестве ТЗ приложите исходник эксперта.

сумма 100 время 5.

Для перехода к следующему этапу и началу работы у вас на счету должна быть указанная сумма (профиль - Расчеты - пополнить)

Все правила здесь : https://www.mql5.com/ru/job/rules


Im_hungry 2013.11.26 12:11

ок.

Средства будут заморожены до вашего подтверждения этапа "Оплата"

после проверки и получения исходного кода. Если что есть арбитраж

в который вы сможете обратиться с претензиями о возврате денег.


2013.11.27 12:20 Заказчик kylinar2012 подтвердил шаг "Согласование ТЗ". Окончательная стоимость работ установлена в размере 100.00 кредитов.

Заказчик приложил Техническое задание


2013.11.27 14:01

Разработчик Im_hungry подтвердил шаг "Согласование ТЗ". На счете Заказчика (kylinar2012) заморожено 100.00 кредитов

2013.12.01 09:38

Разработчик Im_hungry обратился в арбитраж:

"Прошу закрыть заявку в пользу заказчика.ТЗ невозможно реализовать в силу архитектуры МТ5.Спасибо"

2013.12.02 11:28

По результатам арбитража работа была аннулирована администратором Rosh. Заказчику были возвращены замороженные средства в размере 95.00 кредитов. Исполнитель переведен в "Отклоненные".


Вот и все, затем мне письмо на почту:


Извините что заставил ждать но для МТ5 это
оказывается нереально будет сделать в силу архитектуры МТ5.
Но есть возможность взлома файлов и переписывания данных
где хранятся данные с барами. Но это будет стоить дорого.
400$ + есть некоторые ограничения. Смогу сделать за пару дней.

С уважением, Алекс.


И в чем я виноват? За что штраф? Прошу комментариев Рашида или Рената.

 

Еще добавлю, что такой советник реализован здесь:

https://www.mql5.com/ru/market/product/714#full_description

Только он мне немного не подходит, т.к. используются специфические индикаторы (к сожалению).

Еслиб я мог поставить свои, то этой разработкой и не заморачивался, а купил там.

Технический индикатор Renko Charts
Технический индикатор Renko Charts
  • 99.00 USD
  • Konstantin Gruzdev
  • www.mql5.com
Индикатор iRenkoChart предназначен для создания пользовательских графиков Renko. Используется открытый формат файлов истории, легкое переключение между графиками на основе Bid и Ask котировок, контроль качества истории, возможность использования...
 
kylinar2012:

И в чем я виноват? За что штраф? Прошу комментариев Рашида или Рената.

С другими претендентами переписки не было?

Я на вашей стороне. Будет очень интересен комментарий Рашида. 

Причина обращения: