Archive

Posts Tagged ‘doha’

Two years ago Sketch

August 21, 2020 2 comments

Looking back in my sketchbooks this is a sketch from Two years back on same day 21.8.2018, this Winnie the Pooh was a sticker on my Daughter pincel case. I color it last week using my Galaxy Note 9.

Python: Shares Speculation System – Part 7

August 18, 2020 Leave a comment


Learning : Python, DataBase, SQL, SQlite3
Subject: Plan, Design and Build a Shares Speculation System

Project Card:
Project Name: Shares Speculation System
By: Ali
Date: 2.7.2020
Version: V01-2.7.2020

In this Part we will write the Function to Delete a Transaction from the System, and will write the last part of show_all_Transaction function.
First we will write a Function to Delete a Transaction, we have two types of Transactions “Buying” and “Selling” so the user will select the Transaction Type to delete.
1. Buying Transaction: If the user select to Delete a Buying Transaction, we will call show_all function to display all the Buying Transactions and the ask the user to Enter the ID of the record to be Deleted. Here is the Code ..

Then we will print-out the Selected Transaction Details and ask the user to Confirm the Deleting action by Entering ‘Y’.
After Confirming we need to perform or to Aplay three parts of code:
1. Deleting the Buying Transaction from Buying Table (buy_t_table).
2. Deleting the Buying Record from the Budget Table.
3. Updating the Share Basket Table (s_basket).
For the “Update the Share Basket Table (s_basket).” we need to Subtract the amount of the shares from the Share Basket.
Here is the code for all three action..



The Same actions will be taken if the user select to Delete a Selling
transaction. So if the user select “2. Selling Transaction:” we will call show_all function to display all the Selling Transactions and the ask the user to Enter the ID of the record to be Deleted and will display the Transaction Details. Here is the Code ..



And will waite for the user to Confirm the Deleting action, then again three blocks of code will Delete and update records in our system, here are the code ..

Now we finish the def del_trans(): Function to Delete a Buying or Selling Transaction and will work on the last part of def show_all_trans (inside = ‘No’, show=’3′): to Show/Display both Buying and Selling Transactions in one table format. To do so First we will RUN two SQL commands to ‘fetchall’ Buying and Selling Transaction… Here is the code ..


# Get All Sell Transactions Order by id desc
c.execute (" select * from sell_t_table where st_id > 0 order by st_id desc") 
show_s_trans = c.fetchall()   
            
# Get All buy Transactions Order by id desc
c.execute (" select * from buy_t_table where bt_id > 0 order by bt_id desc") 
show_b_trans = c.fetchall()    

Then we print-out the Table header as the following line:
print(“\n”,” “*11,”{:<9}{:<13}{:<30}{:<16}{:<11}{:<15}{}".format('ID','Date','Share Name','SAmount','Price','Cost','Income'))
Then using a For loop we will print-out the transactions in same format of the table header .. Here is the full Code

Last thing we will print the Totals of Investment, Incomes and the Net Profit.


print(" "*73,'Total Investment is: {:,}'.format(total_inv)) 
print(" "*76,'Total Incomes is: {:,}'.format(total_inc))  
print(" "*75,"-"*30,"\n"," "*75,'   Net Profit is: {:,} '.format(total_inc - total_inv))




We Done with this Part ..

Coming Up: In the Next post we will write the Function to Edit a Transaction.

[NOTES]
1. Part-1 has no code file.
2. We are applying some basic Validations on some part of the code, and assuming that the user will not enter a messy data.
3. This Application Purpose for Saving Transactions and NOT for Desetion Making and Dose’t Have any type of AI or ML Model to Predict the Prices and/or Giving Sugestions on Buying or Selling Shares.


:: Shares Speculation System ::

Part 1 Part 2 Part 3 Part 4 Part 5
Part 6 Part 7 Part 8



All the code are available ..

To Download my Python code (.py) files Click-Here

 


Follow me on Twitter..

By: Ali Radwani

 

Python: Shares Speculation System – Part 6

August 12, 2020 1 comment


Learning : Python, DataBase, SQL, SQlite3
Subject: Plan, Design and Build a Shares Speculation System

Project Card:
Project Name: Shares Speculation System
By: Ali
Date: 2.7.2020
Version: V01-2.7.2020

In Part-5 we wrote the function to submit the Buying Transactions ..[Click to Read] also we wrote the section of showing/displaying the Buying records on the screen. In this part we will continu on same function to write the code to Save Selling Transaction and display them on the screen in Show all Transactions Function.

So First we will writing the code to Save/Submit Selling Transactions. Now let’s start coding ..

Before we start I want to focus on a one-line If statement that we will use to give the user the ability or the chance to Quit or Exit from the function in any time before saving the Transaction by just entering ‘Q’, here is the code: if s_s_id in [‘Q’,’q’] : return (s_s_id is the user input).

In def sell_share(): function we will display all the Shares Name (by calling show_share() function) on the screen and ask the user to select the ID for the share, then we will Run tow SQL statements to get some data about that share such as it Full Name and the amount of shares we have (from s_basket table), if the return value of the s_basket is None or we Don’t have any shares we can’t do any Sell process so we will Exit. Here is the code ..



If we have shares, then we will print on the screen to show total amount of shares we have and will ask the user to Enter the new selling share information like the Date, The Amount of Selling and the Price, here is the code ..


After that, we will ask the user to CONFIRM Saving by pressing ‘Y’, and will use the SQL Insert statement to submit the data to the Database, also to update the s_basket table…. Here is the code.


Now we finish the def sell_share(): function and will start to writing the corresponding part to show the Selling Transactions in def show_all_trans ():, in this section of the code as we did to show the Buying Transactions we will RUN an SQL statement to get all selling transaction in the table, we will use the formatting to output the data as a table format. Here is the code


Coming Up: In Next part we will Write the Function to Delete Transactions from the System, also will write a code to Show All Transactions Buying and Selling in one Table.


[NOTES]
1. Part-1 has no code file.
2. We are applying some basic Validations on some part of the code, and assuming that the user will not enter a messy data.
3. This Application Purpose for Saving Transactions and NOT for Desetion Making and Dose’t Have any type of AI or ML Model to Predict the Prices and/or Giving Sugestions on Buying or Selling Shares.


:: Shares Speculation System ::

Part 1 Part 2 Part 3 Part 4 Part 5
Part 6



To Download my Python code (.py) files Click-Here




Follow me on Twitter..




By: Ali Radwani




Sketch from One Year Back

August 5, 2020 Leave a comment

This is an Elephant sketch from One #year ago i use a pencile then black ink pen.

Follow me on Twitter..

To The Freedom

August 3, 2020 Leave a comment

Another sketche I woke on with watercolor.

Follow me on Twitter

Lily Flower Drawing


Away from Coding and Python projects, drawing is my best way to relax, along with coffee and almost 15min of sketching with pencil then ink-ed it, here is the Lily.

Follow Me on Twitter

Random Sketch


Last night I was going through the Net looking for some Animals phones for my kids to learn there Names and the kind of food each will eat, I came up with this photo of a Giraffe, couldn’t stop myself from the desire to draw it. I use my Galaxy Tab S4 and Autodesk Sketchbook Application to sketch it.. Here it is.. And you may fond more of my sketches on the SKETCHE Page.

Follow me on Twitter Here

Python: Shares Speculation System – Part 4

July 19, 2020 3 comments


Learning : Python, DataBase, SQL, SQlite3
Subject: Plan, Design and Build a Shares Speculation System

Project Card:
Project Name: Shares Speculation System
By: Ali
Date: 2.7.2020
Version: V01-2.7.2020

Last time we worked on Budgets Managment for our system, now before we start Buying and Selling shares we need to create list of shares name so we can select from it, we have a table called shares_name this Table have the following fields :
s_id: as a PRIMARY KEY.
full_name: To hold the full name of the share.
abb_name: To hold the Abbreviation of a share name.
The Share Managment section will have four main Functions to Add, Edit, Delete and Show shares. .. Let’s start with it’s Main Menu ..



First Function we will work on will be to Add New Share to the system, we will call it def add_share(): , we will ask the user to input the Share Full Name and its Abbreviation. With Abbreviation we will apply the .upper() function to convert the user input to Upper-case, and for the Full Name we will will apply this code [“ “.join([word.capitalize() for word in user-input] to upper case each first character of the Name. The we will check if the Share Name exist in the DataBase If not we will add it.

 # Add New Share
def add_share() :
        
    os.system('clear')
    print('\n   ====== Add New Share ======\n\n')
    while True :
            
        abb_name = input("   Enter the Abbreviation Name of the Share.. > ").upper() 
        full_name = " ".join([word.capitalize() for word in input('     Enter the Full Name of the Share.. > ').split(" ")])

        c.execute ("select * from shares_name where full_name ='{}' or abb_name = '{}'".format(full_name, abb_name)) 
        share_exist = c.fetchone ()
        if share_exist[0] > 0 :
            print('\n   It seams that the Share Exist in the Database, Name or Abbreviation CAN NOT be Duplicated.')
            print('   Try another Name. ')
        else :      
            c.execute ("INSERT INTO shares_name (full_name , abb_name)  VALUES(:full_name , :abb_name)",{"full_name":full_name, "abb_name":abb_name}) 
            db_conn.commit()
            
        if input ('\n   Do you want to Enter another Share Name?.  [Y,N]. >  ')  not in ['Y','y']: 
            input ('\n    .... Press any key to  Exit.  ')
            return



After adding shares we want to see them and to make sure if every things are fine, so we will write the show_share function, and it will take one argument as inside with default value = ‘Yes’, if we call the function from inside another function the value will be Yes, otherwise it will be ‘No’. Here is the code ..


Next is Editing Share Name, in this function we will call the show_share (‘Yes’) so the user will select the ID of the Share Name to be Edit, then with each attribute we will ask the user ether to Enter the new Edit of the attribute or to press Enter to keep the exist variable. .. Here is a copy of the code ..


Last Function in this Artical is Delete def delete_share() : again we will call the Shoe function to display all the Shares Name on the screen and let the user to select the one to be Deleted by Entering it’s ID.

 # Delete Function.    
def delete_share() :
    os.system('clear')
    print('\n   ====== Delete a Share  ======\n\n')
    
    print('   Here is a list of Shares we have in the System .. \n')
    show_share('Yes')
    
    del_share = input('\n\n   Enter the ID for the Share Name you want to Delete. [Q to Exit] >  ') 

    if del_share in ['q', 'Q'] :
        input ('\n\n    .... Press any key to  Exit.')
        return    
    elif del_share.isnumeric() :
        if (input ('   Are you SURE you want to DELETE Share ID {} ? [Y,N] >  '.format(del_share))) in ['y','Y'] :   
            c.execute ("delete from shares_name where s_id ={}".format(int(del_share))) 
            db_conn.commit()
            input ('\n    ....One Record DELETED. Press any key to  Exit.')
            return
        else :
            input ('\n    ....Share will NOT be Deleted. Press any key to  Exit.')
            return
    else :
        input ('\n    ....Invalid Inpout. Press any key to  Exit.')
        return



Now we can create or Enter a Budget and Enter the Shares Name we have in our Stock Market and we are ready to write the functions to make the transactions.


Coming Up: In Next part we will write the Function to submit/Save Buying and Selling Transactions to our system.


[NOTES]
1. Part-1 has no code file.
2. We are applying some basic Validations on some part of the code, and assuming that the user will not enter a messy data.


:: Shares Speculation System ::

Part 1 Part 2 Part 3 Part 4
Part5



To Download my Python code (.py) files Click-Here




Follow me on Twitter..




By: Ali Radwani




Sketch to Relax


This is a last night Sketch, just to break or stop thinking in codes and functions that are not working well. I think I need to stop codeing for 2-3 Days.

Python: Shares Speculation System – Part 3

July 14, 2020 4 comments


Learning : Python, DataBase, SQL, SQlite3
Subject: Plan, Design and Build a Shares Speculation System

Project Card:
Project Name: Shares Speculation System
By: Ali
Date: 2.7.2020
Version: V01-2.7.2020

In this part we will start writing some codes for our System, we will start with Budget Managment.

Budget: In the Shares Speculation System, and before the user can submit any Buying Transactions the system will check If there is enough money in the Budget Repository, so first we have to Insert a Budget. Therefore, we will start from Budget Managment.
Budget Managment will have five sub-menu as follow:
1. Add New Budget.
2. Withdraw Budget.
3. Edit a Budget.
4. Delete a Budget.
5. Show all Budget.
9. Exit.

So we will start writing the functions for each one.. let’s start with the Budget Menu, we use the while True: loop to keep the Menu until uer_choice == 9 where we return the user to the previous Menu. Here is the code:

Now, lets go through each Function..

Add New Budget: This Function will ask the user to Enter three pieces of information, The Date, The Budget Amount and if the user want to add some Notes such as cheque number or the source of the mouney/fund. For the Date, we want to make sure that the user entry is in the format we want and it is a date, so i wrote a function called date_validation () we will talk about this function later. For the Note part after the user enter the notes we will do (upper-case) for each first character in the text using this code: bud_note = ” “.join([word.capitalize() for word in bud_note.split(” “)]) Here is the full code ..

 # Add New Budget to the system.

def add_budget (): 
    os.system('clear')
    print('\n   ====== Add New Budget ======\n\n') 
    print('   Enter the Details of the Budget..\n')
      
    while True :
        bud_date = input ('   Enter the Date as [dd-mm-yyyy].  >  ') 
        msg = (date_validation (bud_date))
        if msg !='valid' :
            print(msg) 
        else:
            break
    bud_amount = input ('   Enter the Budget Amount.  >  ')
    bud_note = input ('   Enter any Notes if you want. [Hint: Cheque No.] >  ') 
    bud_note = " ".join([word.capitalize() for word in bud_note.split(" ")])    
    c.execute ("INSERT INTO budget_t (bud_date ,bud_amount, bud_note)  VALUES(:bud_date ,:bud_amount, :bud_note)",{"bud_date":bud_date ,"bud_amount":float(bud_amount), "bud_note":bud_note}) 
    db_conn.commit()
          
    input('\n\n        ... Press any Key to Exit')   


For the Budget Date we want the date to be in certain format, so we wrote a function that will take the user_input and check it’s format then return a message back, the message will be ‘Valid’ if the date format is correct, otherwise the message will give a hint if format error as:
Date Not Valid “Bad Year” or Date Not Valid “Bad Month” or Date Not Valid “Bad Day”. Here is the code for the Date Validation Function ..


Next we will write a function so we can withdraw some amount of money from the Budget, Why?? If we assume we start our Shares Speculation with 100,000$ and after several Buying and Selling we gain say 50,000$ as Profits, and we want to use this cash the [50,000$] to buy something; therefore we need to subtract / withdraw from the system. Here is the code to do this and the system will add [ WITHDRAW ] to the Note field.

 # To withdraw form the Budget


def sub_budget (): 
    os.system('clear')
    print('\n   ====== Withdraw from Budget ======\n\n')
    print('   Enter the Details of Withdraw Amount..\n')
    while True :
        bud_date = input ('   Enter the Date as [dd-mm-yyyy].  >  ') 
        msg = (date_validation (bud_date))
        if msg !='valid' :
            print(msg) 
        else:
            break
   
    bud_amount = input ('   Enter the Withdraw Amount.  >  ') 
    if int(bud_amount) > 0 : 
        bud_amount = int(bud_amount) * (-1)
    bud_note = input ('   Enter any Notes if you want. [Hint: Cheque No.] >  ')
    bud_note = "[ WITHDRAW ], " + bud_note 
    bud_note = " ".join([word.capitalize() for word in bud_note.split(" ")])
    c.execute ("INSERT INTO budget_t (bud_date ,bud_amount, bud_note)  VALUES(:bud_date ,:bud_amount, :bud_note)",{"bud_date":bud_date ,"bud_amount":bud_amount, "bud_note": bud_note}) 
    db_conn.commit()
           
    input('\n\n        ... Press any Ket to Exit')   


Now, in both Edit and Delete function we need to show the Budgets we have so the user will select the one for processing. So we will write the code to show Budgets in the system and we will present it as a Table. Here is the code ..

 # To show the Budget Table
        
def show_budget (inside='No'): 
    if inside =='No' :
        os.system('clear')
        print('\n   ====== Show Budgets ======\n\n') 
        print('   List of Budgets ..\n')
    c.execute ("select * from budget_t where bud_id >0") 
    budgets = c.fetchall() 
    print('      {:<10}{:<13}{:<16}{}'.format('ID','Date','Amount','Note'))
    print("    ","-"*70)
    try:
        for x in range(0,len(budgets)) : 
           print("      {:<8}{:<14}{:,}{:0") 
        budget_amount = c.fetchone() 
        print('\n\n    The Total Amount Budgets in the Account is : {:,} '.format(budget_amount[0]))
   
        input('\n   ... Press any key to Exit')   


So we have another two Functions [Edit, Delete] to go, the easyer one is Deleting Budget. In Delete function we will display a table with all Budgets we have in the system and the user will enter the ID of the Budget to be Deleted, we will ask the user to confirm the action then if CONFIRMED the Budget will be Delete. .. Here is the code ..


Last function in this part is to Edit a Budget that we have in the system, to do this we first will display all Budgets we have and the user will Enter the ID of the one to be Edited, we will go through it’s attributes asking the user to Edit or just Press enter to skip and keep the current value. For the Date we will call the date_validation() after user input, and for the Note we will check the Amount if it is Negative we will add “[ WITHDRAW ]” in the beginning of the Note line.

 # Edit Budget Function

def edit_budget (): 
    os.system('clear')
    print('\n   ====== Edit Budget ======\n\n') 
    show_budget (inside='Yes')
    try: 
        edit_budget = input ('\n\n    Select the Budget ID to Edit.  > ')
        c.execute ("select * from budget_t where bud_id ={}".format(int(edit_budget))) 
        e_budget = c.fetchone()
        if e_budget != None: 
            print('\n    You Select to Edit this Budget ..') 
        else:
            print('\n    ID Not Valid ... ')
             
        print('\n       ID: ',e_budget[0])
        print('     Date: ',e_budget[1])
        print('   Amount:  {:,}'.format(e_budget[2]))
        print('     Note: ',e_budget[3])
    
        print('\n\n   Edit Each Attribute OR Press Enter to Skip.. \n')
    
        while True :
            new_b_date = input('   Enter the New Date as [dd-mm-yyyy]. > ')
            if new_b_date >"" : 
                msg = (date_validation (new_b_date))
                if msg !='valid' :
                    print(msg) 
                else:
                    c.execute("update budget_t set bud_date = '{}' where bud_id = {}".format(new_b_date,int(e_budget[0]))) 
                    db_conn.commit() 
                    break    
            elif new_b_date =="" :break
                        
        new_b_amount = input('   Enter the New Amount > ')
        if new_b_amount > "" : 
            if input ('\n   You want to change the Budget Amount From {:,}  To {:,}. CONFIRM [Y,N] > '.format(float(e_budget[2]),float(new_b_amount))) in ['Y','y'] :
                c.execute("update budget_t set bud_amount = '{}' where bud_id = {}".format(float(new_b_amount),int(e_budget[0]))) 
                db_conn.commit() 
        else:
            print('   Budget Amount Not changed..\n')
            
        new_b_note = input('\n   Enter the New Note: > ')
        if new_b_note > "" :
            new_b_note = " ".join([word.capitalize() for word in new_b_note.split(" ")])
            if (e_budget[3])[0] =='[' and int(new_b_amount) < 0 :
                new_b_note = "[ WITHDRAW ], " + new_b_note     
        
            c.execute("update budget_t set bud_note = '{}' where bud_id = {}".format(new_b_note,int(e_budget[0])))          
            db_conn.commit() 
    
        input('\n   ... DONE ...  Press any key to Exit')
    except:
        input('\n       ... Error in User Input.  ... Press any key to Exit ...')


Coming Up: In Next part we will write the menu and the functions for the Shares Managment.

[NOTES]
1. Part-1 has no code file.


:: Shares Speculation System ::

Part 1 Part 2 Part 3 Part 4



To Download my Python code (.py) files Click-Here




Follow me on Twitter..




By: Ali Radwani